0

我有 4 个文本文件,其中每个文件都有一列数据(每个文件中约 2000 行)。我想要做的是比较所有文件,并确定不同文件之间的重叠是什么。所以,我想知道 file1 中有什么而不​​是其他 3 个文件,file2 中有什么但其他 3 个没有,只有 file1 和 file2 有什么,等等。最终目标是用4 个重叠圆圈显示文件之间的各种重叠。

我一直在绞尽脑汁想弄清楚如何做到这一点。我一直在使用 comm 和 diff 命令,但在处理所有文件时遇到了麻烦。有人对如何做到这一点有任何建议吗?

感谢您的任何帮助或建议。

4

1 回答 1

0

假设有 4 个名为 abcd 的文件

存在于文件 a 但不存在于其他任何文件中的行(我假设 ^ 是一个未在任何文件中使用的字符):

for l in `cat a | sort | uniq`;do echo $l^`grep -c $l b c d`;done | grep 'b:0 c:0 d:0$' | cut -d\^ -f1

所有这些都存在的行:

for l in `cat a | sort | uniq`;do echo $l^`grep -c $l b c d`;done | grep 'b:[1-9]* c:[1-9]* d:[1-9]*$' | cut -d\^ -f1

...

于 2014-01-29T19:20:42.603 回答