1

Когда я устраиваю вечеринки, я записываю все, что едят мои гости. [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 ответ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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .