Bash: быстро найти разность двух файлов второго столбца, только если первый столбец совпадает - PullRequest
0 голосов
/ 26 октября 2018

У меня есть два больших файла около 7 ГБ каждый.Я хотел бы найти разницу второго файла, только если номер первого столбца одинаков для двух файлов.Два файла отсортированы, но могут иметь разное количество строк.

Первый файл выглядит следующим образом: (1.txt)

5 5
6 6
7 7 
8 8
9 9

Второй файл выглядит следующим образом: (2.txt):

3 3
4 4
5 5
6 6
7 4 
8 4
9 9

Вывод должен выглядеть следующим образом:

7 4
8 4 

Сейчас у меня есть этот однострочный, но я не уверен, если онможет идти быстрее:

mawk 'NR==FNR{a[$1]=$2; next} ($1 in a) && a[$1]!=$2' 1.txt 2.txt

1 Ответ

0 голосов
/ 26 октября 2018

если файлы отсортированы по объединенному ключу, самый простой (и самый быстрый) будет

$ join file1 file2 | awk '$2!=$3{print $1,$3}'

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