如果要每个文件出现的次数(例如字符串“ 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
(计数)的grep命令一起使用。例如:
grep -c "tcp" *.txt | awk -v FS=":" -v OFS="\t" '$2>0 { print $2, $1 }' | sort -hr