0
예를 들어 1000 개의 파일에서 GREP 명령을 사용하여 KeyWord/String을 검색/확인하고있는 경우, GREP 명령으로 처리 된 파일의 백분율이나 수를 보거나 표시하는 옵션/방법이 있습니까?grep 명령으로 처리 된 파일의 수 또는 백분율
검색 프로세스를 완료하는 데 얼마나 오래 걸릴지 알고 싶습니다.
예를 들어 1000 개의 파일에서 GREP 명령을 사용하여 KeyWord/String을 검색/확인하고있는 경우, GREP 명령으로 처리 된 파일의 백분율이나 수를 보거나 표시하는 옵션/방법이 있습니까?grep 명령으로 처리 된 파일의 수 또는 백분율
검색 프로세스를 완료하는 데 얼마나 오래 걸릴지 알고 싶습니다.
이 awk
을 시도 도와주세요. 이렇게하면 처리중인 파일 번호를 나타내는 메시지가 출력되고 그 뒤에 패턴과 일치하는 행이 인쇄됩니다. 필자는이 패턴을 필자가 테스트하기에 쉬운 문자 p로 선택했다. 귀하의 목적에 맞는 유효한 정규 표현식으로 대체 할 수 있습니다.
awk -v PAT="p" 'FNR == 1 { n++; printf "Processing %d of %d files\n", n, ARGC - 1 >> "/dev/stderr"} FILENAME ~ /.gz$/ {print "Skipping gz file: ", FILENAME; nextfile} /PAT/'
설명
awk -v PAT="p" '
FNR == 1 { # Every first line of the file
n++; # Counter for file being processed
printf "Processing %d of %d files\n", # Print message
n, # file number
ARGC - 1 # Number of files on CLI
>> "/dev/stderr" # Redirect to stderr
}
FILENAME ~ /.gz$/ { # Skip gunzip files
print "Skipping gz file: ", FILENAME;
nextfile # move to next file
}
/PAT/ # Pattern to print
'
UPDATE
는 처리 할 때 gunzip을 (에 .gz) 파일을 제외하려면 코드를 업데이트했습니다.
출력을 메시지로 믹싱하는 것은 좋은 습관이 아니므로이를 표준 오류로 리디렉션 할 수 있습니다. – karakfa
감사합니다. @JayRajput ... 그것은 다소 필요하거나 의미가있었습니다. 하지만 ** printf ** 출력 외에도 ** 정크 메일 ** 값을 얻고 있습니다. 실제로 제 경우에는 검색해야 할 파일이 ** .gz ** 파일입니다. 그래서 이것이 내가 원치 않는 쓰레기 값을 얻는 이유입니다 ...? 어떤 솔루션이 이것을 피하기 위해 ...? – Krishnan
gunzip 파일을 건너 뛰도록 코드를 업데이트했습니다. –