我有很多日志文件都是唯一的文件名,但是根据大小,很多都是完全相同的内容(僵尸生成的攻击)。
我需要过滤掉重复的文件大小或仅包含唯一的文件大小。 95%不是唯一的,我可以看到文件大小,因此可以手动选择要过滤的大小。
我已经解决了
find . -size 48c | xargs ls -lSr -h
只给我48个字节的日志,并且可以继续使用此方法创建一长串包含的文件
据我所知, uniq
不支持文件大小
find
确实有not
选项,这可能是我应该看的地方吗?
如何有效过滤掉已知的重复项?
或者是否有不同的方法仅根据唯一大小过滤和显示日志。
答案 0 :(得分:1)
一个解决方案是:
find . -type f -ls | awk '!x[$7]++ {print $11}'
$ 7是filesize列; 11美元是路径名。
由于您使用find
我假设有子目录,您不想列出。
awk
部分打印具有给定大小(仅)的第一个文件的路径。
HTH
答案 1 :(得分:0)
你几乎拥有它,确实会提供解决方案:
find . -size 48c | xargs