Как найти несовпадающие строки между двумя файлами по указанному столбцу

awk '(ARGIND==1) {tab[$3]=1} (ARGIND==2 && ! ($3 in tab) ) {print $0}' file1 file2


Команда awk используется для обработки текстовых файлов, основываясь на определенных шаблонах или условиях.

В данном случае команда выполняет следующие действия:

1. Считывает содержимое первого файла (file1) и создает ассоциативный массив tab, в котором ключами являются значения третьего столбца.

2. Считывает содержимое второго файла (file2) и проверяет для каждой строки, что ее значение третьего столбца не находится в массиве tab из первого файла. Если это так, то команда выводит данную строку.

Таким образом, команда находит несовпадающие строки между двумя файлами по указанному столбцу.

Альтернативой данной команде может быть использование утилиты diff для сравнения содержимого двух файлов, либо комбинация команд grep и awk для нахождения совпадающих/несовпадающих строк.

В передаваемых команде аргументах указываются названия файлов, которые будут обрабатываться.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *