로그 파일이 많이 있습니다. 모든 파일에서 문자열이 몇 번이나 발생하는지 찾아야합니다.
grep -c string *
보고
...
file1:1
file2:0
file3:0
...
파이프를 사용하여 하나 이상의 발생이있는 파일 만 얻을 수있었습니다.
grep -c string * | grep -v :0
...
file4:5
file5:1
file6:2
...
총 개수 만 어떻게 구할 수 있습니까? (이 반환 file4:5, file5:1, file6:2
되면 8을 다시 얻고 싶습니다.)
답변
cat * | grep -c string
답변
한 줄에 여러 번 발생합니다.
grep -o string * | wc -l
답변
grep -oh string * | wc -w
한 줄에 여러 번 발생
답변
-c를 사용하는 대신 wc -l로 파이프하십시오.
grep string * | wc -l
그러면 각 행이 단일 행에 나열되고 행 수를 계산합니다.
그러나 문자열이 한 줄에 2 번 이상 발생하는 인스턴스는 누락됩니다.
답변
cat * | grep -c string
의 유용한 응용 프로그램 중 하나입니다 cat
.
답변
이전의 모든 답변과 다른 점 :
perl -lne '$count++ for m/<pattern>/g;END{print $count}' *
답변
-R
재귀 적으로 검색하고 cat 사용을 피하기 위해 추가 -I
하고 이진 파일을 무시할 수 있습니다.
grep -RIc string .