Совпадение файлов в начале строки
Когда я устраиваю вечеринки, я записываю все, что едят мои гости. [1]
Примечание: я вставил несколько вкладок, чтобы все было читабельно.
party1.txt
:
Bernhard Apple
Jeremy Cake
Liz Cake
Daisy Pear
party2.txt
:
Liz Cake
Bernhard Pear
Jeremy Cake
Susan Orange
Теперь я хочу посмотреть, насколько предсказуемы гости, сравнивая файлы. я могу использовать
cat party1.txt | sort > party1-sorted.txt
cat party2.txt | sort > party2-sorted.txt
Но сравнивать вручную медленно. Есть ли у bash возможность иметь pasteMatch
команда, давая
Bernhard Apple Pear
Daisy Pear
Jeremy Cake Cake
Liz Cake Cake
Susan Orange
[1] Не совсем, конечно.
1 ответ
Решение
Самым простым решением является использование команды join.
Синтаксис будет:
join -j 1 -a 1 -a 2 party1-sorted.txt party2-sorted.txt
Поле соединения по умолчанию является первым, разделенным пробелами. Эта команда, однако, заменит несколько пробелов по одному:
Bernhard Apple Pear
Daisy Pear
Jeremy Cake Cake
Liz Cake Cake
Susan Orange
Более сложный формат вывода потребует использования awk или sed.