Linux统计多个文本文件中关键字出现的次数

Linux统计多个文本文件中关键字出现的次数

Linux下需要统计当前文件夹内每一个文本文件里关键字出现的次数,注意不是统计所有的总次数,是要统计并返回每一个文档里的关键字出现次数

解决方法1

find . -name "文件名"  | xargs grep -c "关键字" | awk -F ":" '($2>0) {print $0}' | sort -t ":" -k 2,2nr
筛选当前目录下文件  |  统计文件中"关键字"的个数  |  过滤掉"关键字"个数为0的情况  |  根据:分割域,按照第二个的 按照"number"类型的个数排序(升序)

统计/test/路径下,每个文件中aass关键字出现的次数

[root@sss test]# find . -name "*"  | xargs grep -c "aass" | awk -F ":" '($2>0) {print $0}' | sort -t ":" -k 2,2nr
./ex.log:8
./aas5:4
./aas2:3
./new.sh:2
./aas:1
./aas3:1
./aas4:1
./aas6:1

解决方法2

统计/test/路径下,每个文件中aass关键字出现的次数
脚本统计:vim new.sh 加入以下

#!bin/sh
for file in /test/* ;
do
    if test -f $file 
    then
         e=`grep aass "$file"|wc -l` 
         echo "aass--"$file"--"$e
        #echo $file 是文件   >> c.log
    else
        echo $file 是目录
    fi
done

添加执行权限:chmod +x new.sh
执行脚本:sh new.sh

[root@sss test]# sh new.sh
aass--/test/aas--1
aass--/test/aas2--3
aass--/test/aas3--1
aass--/test/aas4--1
aass--/test/aas5--4
aass--/test/aas6--1
aass--/test/ex.log--8
aass--/test/ne--0
aass--/test/new.sh--2
[root@sss test]#

你可能感兴趣的:(centos)