Linux统计每一个txt文件中关键字出现的次数(目录下有很多txt文件)。

1.Linux下需要统计当前文件夹内每一个txt文件里关键字出现的次数,注意不是统计所有的总次数,是要统计并返回每一个txt里的。
2.我的每个txt里关键字“successfully”出现的次数应该6,但是有一个里面出现的次数不是6,想把它找出来。

ls *log |wc -l
858
grep -o "successfully" *log | wc -l
5142

我的总的log文件应该是858个,总的关键词统计应该为5148,但是只有5142,想找出缺少的那一个。
谢谢!

还可以用脚本解决,如果需要经常执行此操作,脚本方便一些,稍加更改还能输出到日志文件

#!bin/sh
for file in /test/*.log ;
do
    if test -f $file 
    then
         e=`grep 关键字 "$file"|wc -l` 
         echo "关键字--"$file"--"$e

    else
        echo $file 是目录
    fi
done


自己建个脚本,每次需要只要执行一下脚本就行了

查找  当前目录下以log结尾的文件,统计文件中**"关键字"**的个数 过滤掉**"关键字"**个数为0的情况
并 根据:分割域,按照第二个的 按照"number"类型的个数排序(升序)

find . -name "*.log"  | xargs grep -c "关键字" | awk -F ":" '($2>0) {print $0}' | sort -t ":" -k 2,2nr