grep에서 일치하는 파일 수 계산

grep에서 일치하는 파일 수 계산

일치하는 파일 수를 grep변수라는 변수에 어떻게 저장할 수 있나요 nf?

다음 명령을 사용 grep하고 계산은 wc.

grep -rl "${isufx[@]}" -e "$ptrn" -- "${fdir[@]}" | wc -l

답변1

다음 명령을 포함하면 변수에 저장된 파일 수를 계산할 수 있습니다 $(...).

nf=$(grep -rl "${isufx[@]}" -e "$ptrn" -- "${fdir[@]}" | wc -l)

또 다른 옵션은 전통적인 역따옴표입니다.

nf=`grep -rl "${isufx[@]}" -e "$ptrn" -- "${fdir[@]}" | wc -l`

답변2

파일 수를 찾고 GNU find( -rGNU 확장자 먼저)를 가정하려면 NUL로 구분된 파일 경로를 인쇄한 다음 출력에서 ​​NUL 수를 계산하도록 지시할 수 있습니다.

grep --null -rl "${isufx[@]}" -e "$ptrn" -- "${fdir[@]}" |
  tr -cd '\0' | wc -c

tr -cd '\0'NUL(보수)을 제외한 모든 문자를 제거 d하고 바이트 수를 계산하는 데 사용됩니다 .cwc -c

GNU 유틸리티의 대안 grep -zc '^'은 또는 입니다 sed -z '$='.gawk -v RS='\0' 'END{print NT}'

관련 정보