如何在文件的每一行中grep特定字符的数量

时间:2013-03-18 17:32:54

标签: bash grep

所以我希望在一个非常大的文件(50Gb)的每一行中grep一个给定字符的数量。我需要获取包含Character的每一行的输出?要么 。每行的出现次数以及行号。关于如何通过bash完成此操作的任何想法?我知道任何一个char的最大数量是每行10个,min是0.这是一个旧的,写得不好的自定义数据库,我需要转换,原始开发人员使用句点和问号作为分隔符。

2 个答案:

答案 0 :(得分:0)

以下awk命令将打印行号,找到的?个数以及包含?的行的内容:

awk -F? '/?/{print NR,NF-1,$0}' file

答案 1 :(得分:0)

这将在行号前面的文件中输出?.个字符的逐行计数:

line_no=1;
while read line
do
    echo $line_no $((`echo $line | sed 's/[^?.]//g' | wc -m`-1))
    line_no=$(($line_no+1));
done < "your_file.txt"