2017-02-15 1 views
-1

У меня есть следующая проблема: у меня есть два файла с 10 коллами каждый и разное количество строк. Я хочу сравнить col 7, и если есть совпадение, экспортируйте полную строку обоих файлов в другую. Я пытаюсьawk: как совместить два файла и получить выход, слияние этих файлов

awk 'NR==FNR{a[$7]=$0;next}!a[$7]' file1 file2 > output 

, но я получаю только соответствие file1 в другом файле. Я не против, если я получаю только col 10 в файле 1, когда есть совпадение. Любое предложение?

Спасибо!

+2

Не могли бы вы привести пример того, что вы пытаетесь и ваш ожидаемый результат? – Inian

ответ

1

Предполагая, что оба файла имеют по меньшей мере 7 столбцов, вы забыли указать awk для печати обоих значений. Ваше текущее решение проверяет, является ли 7-е значение из файла2 НЕ в массиве с значениями file1 и поэтому будет печатать только эти строки из файла2 в новый файл. Так что просто тестовое значение находится в массиве, а затем поместите печать в некоторые фигурные скобки:

awk 'NR==FNR{a[$7]=$0;next}$7 in a{print a[$7],$0}' file1 file2 > output 
+0

Да, спасибо. Он работает сейчас. –

Смежные вопросы