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;