BASH: комм (или аналогичный) при сравнении нескольких файлов

У меня следующая проблема: я хотел бы сравнить содержимое 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 файлами (образец). С diff это не возможно, но в конце я хотел бы иметь

Sample1  Sample2   Sample3    ...Sample8     Things in common
grape    nuts      mango                     apple
                                             pineapple
                                             bananas

Есть ли шанс сделать это с помощью bash? Есть ли такая команда, как diff, которая позволяет искать различия более чем в двух файлах?

Спасибо всем... Я знаю, что это сложный вопрос

Fabio

1 ответ

Вот мое наивное решение:

first=sample1.txt; for a in *.txt; do comm -12 $first $a >temp_$a; echo "comparing" $first " " $a "and writing to temp_$a"; first=temp_$a; cat temp_$a; done;
Другие вопросы по тегам