我有一堆显示错误消息的文件,每个文件都有一个回溯。其中许多文件有相同的错误消息,我想列出每个文件中所有唯一的错误消息。如何找到唯一文件内容集?
编辑:澄清一下,每个文件都包含来自 Python 的回溯,所以这些是多行文件,我想要找到唯一的一组。
答案1
如果您有“一堆”文件,find
并且xargs
是要使用的工具。您的问题也需要grep
、sort
和uniq
如果所有错误消息Error: blah blah
在行首都看起来像“ ”(您应该这么说),那么这样做就可以了:
find . -type f -print0 |\
xargs -0 --no-run-if-empty grep --no-filename "^Error:" |\
sort | uniq -c | sort -rn
最后一行是用于计数唯一出现的次数的著名表达式。第一sort
行将所有相同的消息组合在一起,uniq -c
仅输出唯一行,前面带有计数 ( -c
),最后一行sort -rn
按数字反向排序。
for readthis in find xargs grep sort uniq ; do
man $readthis
done