如何计算千位文件的sinle行格式的多个匹配项的数量

时间:2015-10-21 21:02:47

标签: grep

我必须计算比赛次数" @"在包含数千个单行文件的文件夹中。我试图使用grep但没有希望,有关使用python等其他程序的任何建议吗?

此命令提供所有文件中的总命中次数:

grep -rso @ *.tre | wc -l

5350

这只会在每个文件中吐出一拳:

grep -rosc @ *.tre

cluster517.tre:1
cluster547.tre:1
cluster558.tre:1
cluster559.tre:1
cluster562.tre:1

我想要这样的事情:

cluster517.tre:36
cluster547.tre:37
cluster558.tre:23
cluster559.tre:40
cluster562.tre:12

其中' @'在群集中出现了36次.517.tre'文件或要保存在txt文件中的结果。

1 个答案:

答案 0 :(得分:0)

如果所有文件都在一个文件夹中,那么这将在bash中执行,如您的问题所示:

for F in *.tre ; do
    echo -n "$F:"
    cat "$F" | tr -d -C @ | wc -m | tr -d ' '
done > results.txt

我认为它只适用于一个目录,因为你在代码中也使用了grep的递归(-r)标志,这可能意味着你想要一个递归搜索。

这会将结果保存到名为“results.txt”的文件中。如果您想要查看结果,只需删除> results.txt