주어진 문자열을 포함하는 파일 수 bash / sh의

주어진 문자열을 포함하는 파일 (디렉토리에서)을 bash / sh의 입력으로 계산하는 방법은 무엇입니까?



답변

grep -l "string" * | wc -l 작업 디렉토리의 모든 파일 내용에서 “문자열”을 검색하고 일치하는 수를 알려줍니다.


답변

grep의 매개 변수 -l만 출력 매칭되는 파일 이름은 것 $PATTERN, wc나중에 그들을 셀 수 있습니다.

grep -l "$PATTERN" * | wc -l

답변

awk '/pattern_to_look_for/ {s+=1; nextfile;} END {print s}' *

설명 : 파일 이름이 아닌 내용에 “pattern_to_look_for”가있는 파일 수 (Wag의 답변 등)를 찾습니다. 당신의 질문에서 당신이 찾고있는 것을 말하기는 어렵습니다.


답변

이것은 모든 파일 이름 으로 Bash에서 작동합니다 .

grep -lZ "$pattern" * | tr -cd '\000' | wc -c

설명:

  • grep-Z선택은 ␀ 바이트 세퍼레이터 모든 결과를 출력한다. 이 문자는 파일 이름의 일부가 될 수 없으므로 구분자 수를 세어 파일 수를 얻을 수 있습니다.
  • 출력에서 다른 문자를 제거하려면을 사용하여 ␀ 바이트를 제외한 모든 문자를 제거 하면 됩니다 tr.
  • 그런 다음 문자를로 계산하십시오 wc.