주어진 문자열을 포함하는 파일 (디렉토리에서)을 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
.