Сравните два файла и напечатайте совпадения в первом файле, добавив дополнительный столбец

У меня есть два разных файла с одним столбцом в каждом. В файле 1 есть дополнительная информация, и мне нужна команда для поиска совпадений с файлом 2, а затем возвращение исходного файла 1 с дополнительным столбцом, например, «совпадение»

Файл 1

Mg_134
Mg_560

Файл 2

Mg_1
Mg_134

Вывод

Mg_134 match
Mg_560

Я пытался использовать join и grep -Ff, но мне хотелось бы получить именно такой результат. Спасибо

0
23.11.2016, 01:05
2 ответа

Если файлы отсортированы, стандартный инструмент для этого - comm :

comm -2 file1 file2

Параметр -2 предназначен для подавления строк печати, уникальных для file2 .

Он не дает точный формат, который вы указали. Однако вы можете проанализировать его, чтобы получить такой результат, если хотите. (Стандартные инструменты и стандартные форматы обычно довольно хорошо продуманы.)

1
28.01.2020, 02:34

Это должна быть довольно стандартная задача для awk

awk 'NR==FNR {a[$1]++; next} $1 in a {$2="match"}1' File2 File1
Mg_134 match
Mg_560
1
28.01.2020, 02:34

Теги

Похожие вопросы