파일 당 발생 횟수를 원하는 경우 (문자열 "tcp"의 예) :
grep -RIci "tcp" . | awk -v FS=":" -v OFS="\t" '$2>0 { print $2, $1 }' | sort -hr
출력 예 :
53 ./HTTPClient/src/HTTPClient.cpp
21 ./WiFi/src/WiFiSTA.cpp
19 ./WiFi/src/ETH.cpp
13 ./WiFi/src/WiFiAP.cpp
4 ./WiFi/src/WiFiClient.cpp
4 ./HTTPClient/src/HTTPClient.h
3 ./WiFi/src/WiFiGeneric.cpp
2 ./WiFi/examples/WiFiClientBasic/WiFiClientBasic.ino
2 ./WiFiClientSecure/src/ssl_client.cpp
1 ./WiFi/src/WiFiServer.cpp
설명:
grep -RIci NEEDLE .
-현재 디렉토리에서 재귀 적으로 문자열 NEEDLE을 찾습니다 (심볼릭 링크 뒤), 이진 무시, 발생 횟수 계산, 대소 문자 무시
awk ...
-이 명령은 발생이없는 파일을 무시하고 행을 포맷합니다.
sort -hr
-첫 번째 열의 숫자를 기준으로 역순으로 줄을 정렬합니다.
물론, 옵션 -c
(count)을 가진 다른 grep 명령과도 작동 합니다. 예를 들면 다음과 같습니다.
grep -c "tcp" *.txt | awk -v FS=":" -v OFS="\t" '$2>0 { print $2, $1 }' | sort -hr