Команда Unix для поиска строк в одном файле с ключом, не найденным в другом файле - PullRequest
0 голосов
/ 15 декабря 2018

Оба файла отсортированы, а дубликаты удалены.Я хочу сравнить field1 из file1 с field1 file2 и вывести строку из file1, которой нет в file2.Не задана длина для field1, и это вызывает у меня проблемы с использованием uniq.

Вот пример данных:

Файл1:

UUID(78-d55) NODETYPE(B) 22:42:05  
UUID(78-d51) NODETYPE(B) 22:42:05
UUID(78-dca) NODETYPE(B) 22:42:37
UUID(78-494) NODETYPE(B) 22:42:37
UUID(dp@20181206003956969) NODETYPE(B)  00:39:56

Файл2:

UUID(78-d55) NODETYPE(B) POLNODE(/inbound/us)   
UUID(78-74e) NODETYPE(B) POLNODE(/inbound/us) 
UUID(78-053) NODETYPE(B) POLNODE(/inbound/us)     
UUID(78-5d6) NODETYPE(B) POLNODE(/inbound/us)    
UUID(78-dca) NODETYPE(B) POLNODE(/inbound/us)   
UUID(78-b0b) NODETYPE(B) POLNODE(/inbound/us)    
UUID(dp@20181206003956969) NODETYPE(B)  POLNODE(/inbound/us) 

что я хочу:

UUID(78-d51) NODETYPE(B) 22:42:05 
UUID(78-494) NODETYPE(B) 22:42:37 

1 Ответ

0 голосов
/ 16 декабря 2018

Похоже на задание для join - и его опции -v:

$ join -v1 file1 file2
UUID(78-d51) NODETYPE(B) 22:42:05
UUID(78-494) NODETYPE(B) 22:42:37
$

Обратите внимание, что это зависит от сортируемых файлов, как указано, и отобъединить столбцы, являющиеся столбцом 1 в каждом файле, и разделить поля пробелами или вкладками.Каждый из них может быть изменен дополнительными опциями, если это необходимо.

Это также может быть легко сделано в Awk - и в Perl и Python и… другом языке сценариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...