作为标题,我的文件夹中有几个相当大的log.gz文件。这些log.gz文件的大小每个约为4GB。
我对特定字符串(例如“ abcdfg”)的出现次数感兴趣。我可以在此处执行计数计算的bash命令是什么?
谢谢。
答案 0 :(得分:1)
能否请您尝试以下操作,如果有帮助,请告诉我。
zgrep -c 'abcdef' *.gz
或者您可以提及文件的完整路径,然后在上面的代码中也使用*.gz
。
答案 1 :(得分:1)
您可以尝试使用此命令来计算.gz文件中pattern
的出现次数。
gunzip -c *.gz | grep 'pattern' | wc -l
示例:
# Say there are 3 .gz files with these contents:
a.txt.gz
a1
b2
c3
b.txt.gz
b1
b2
c3
cat c.txt.gz
a3
b3
c4
$ gunzip -c *.gz | grep 'b' | wc -l
4
$ gunzip -c *.gz | grep 'c3' | wc -l
2
答案 2 :(得分:1)
您可以像这样与 GNU Parallel 并行计算它们:
parallel zgrep -c "STRING" ::: *.gz
然后将这些值总计为awk
:
parallel zgrep -c "STRING" ::: *.gz | awk '{t+=$1} END{print t+0}'