linux 统计匹配字符串的行数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 统计匹配字符串的行数相关的知识,希望对你有一定的参考价值。
一个test文件夹下面有很多的.txt文件,每个.txt文件里面都有N多行的数据。
现在有一个字符串,需要分别去统计test文件夹下面的那些.txt文件中,每个文件有多少行是包含了这个字符串的。然后列出 (文件名:匹配到的行数) 的形式显示出来,如果一个文件一行都没有包含,则不需要列出这个文件。
Linux语句怎么写呢?
这是给出字符串"hi"统计目录/path/to/test. 可以把命令中的这两个参数换成你需要的.
find /path/to/test -name "*.txt" -type f -print0 | xargs -0 -n1 awk '/hi/a++ENDif(a>0)print FILENAME":" a'追问假如现在,我不需要(文件名:匹配到的行数)这格式了,只要输出这个文件夹下一共有多少匹配上的行,语句怎么改下呢?
追答grep hi /path/to/test/*.txt | wc -l追问报错 参数列表过长。 怎么办?
追答find /path/to/test -name "*.txt" -type f -print0 | xargs -0 -n1 grep hi | wc -l你的文件数量可能有点多
参考技术A #!/bin/shstring="abcd"
for file in `find ./ -name '*.txt' -print`
do
num=`grep $string $file | wc | awk 'print $1'`
if [ $num != 0 ]; then
echo $file $num
fi
done 参考技术B 用正则表达式
sed -n '/匹配的内容/p' 需要读取的文件 >>将匹配后的结果写入文件名
linux怎么查看/etc/passwd 文件内容并统计文件的行数
参考技术A cat /etc/passwdcat /etc/passwd|wc -l 参考技术B wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。
语法:wc [选项] 文件…
说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。
该命令各选项含义如下:
- c 统计字节数。
- l 统计行数。
- w 统计字数。
这些选项可以组合使用。
输出列的顺序和数目不受选项的顺序和数目的影响。
总是按下述顺序显示并且每项最多一列。
行数、字数、字节数、文件名
如果命令行中没有文件名,则输出中不出现文件名。 例如:
$ wc - lcw file1 file2
4 33 file1
7 52 file2
省略任选项-lcw,wc命令的执行结果与上面一样。
以上是关于linux 统计匹配字符串的行数的主要内容,如果未能解决你的问题,请参考以下文章