【发布时间】:2013-03-21 10:26:06
【问题描述】:
我有以下问题:我想比较包含这样一个列表的 8 个文件的内容
Sample1.txt Sample2.txt Sample3.txt
apple pineapple apple
pineapple apple pineapple
bananas bananas bananas
orange orange mango
grape nuts nuts
使用comm Sample1.txt Sample 2.txt我可以拥有这样的东西
grape nuts apple
pineapple
bananas
orange
意思是在第一列我有一些只与第一个样本相关的东西,第二列是只与第二个样本相关的东西,第三列是共同的东西。
我也想做同样的事情,但需要 8 个文件(示例)。使用差异是不可能的,但最后我想拥有
Sample1 Sample2 Sample3 ...Sample8 Things in common
grape nuts mango apple
pineapple
bananas
有没有机会用 bash 来做呢?是否有类似 diff 的命令允许搜索两个以上文件的差异?
谢谢大家...我知道这是一个具有挑战性的问题
法比奥
【问题讨论】:
-
你也许可以用 comm 和一些 bash 脚本来编程:将文件 X 与所有其他文件的连接进行比较,产生“仅在文件 X 中”,然后连接所有这些“仅在文件 X 中” " 文件并将其与所有文件的串联进行比较,从而产生“公共”部分。不过,对于大量文件,它可能效率不高。
-
你是怎么解决这个问题的?