Awk, сравни 2 файла и выпиши несравнимые - PullRequest
0 голосов
/ 28 марта 2011

Я обычно использую

awk BEGIN {FS=" "} NR==FNR{arry[$1]=$0; next} $1 in array && $0=arr[$1] FS in fields infile1 infile2 > outfile 

для извлечения общих полей в 2 файлах на основе области интереса.Но на этот раз мне нужны несравненные.У меня есть 2 файла с одинаковыми строками, но 200 строк во втором файле не имеют такой же кодировки, как в file1.

Я пытался:

paste f1 f2 | sort -n -k1,2

обоими полями, надеясь наполучите $1==$2 и возьмите неравные поля, но я не получу $1==$2 даже тогда, когда должно быть.

Как я могу это сделать?

1 Ответ

1 голос
/ 28 марта 2011

Поскольку вы, кажется, сравниваете по первому полю, и так как я не знаю, как выглядят ваши файлы данных, я собираюсь слепо попытаться сделать это:

$ cat data1.txt
dana 100
john 101
fiona 102

$ cat data2.txt
dana 100
john 501
fiona 102

$ cat data[12].txt|sort|uniq -u
john 101
john 501

Приведенное выше решение выведет на печатьстроки, которые не совпадают, основаны на первом поле.Поскольку я не до конца понимаю ваш файл данных, я задам этот вопрос.Следующее решает вашу проблему?

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