我必须计算比赛次数" @"在包含数千个单行文件的文件夹中。我试图使用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文件中的结果。
答案 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
。