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