Как сопоставить 2 файла в Linux: один файл с 1 столбцом и второй файл с 2 столбцами - PullRequest
0 голосов
/ 04 сентября 2018

У меня 2 файла.

файл 1:

123456789
789465123
456789132

файл 2:

r6rg6r6,123456789
dfg4665,789465123
dthegfd,456789132

Мне нужно сопоставить идентификаторы и распечатать в файл идентификаторы

r6rg6r6
dfg4665
dthegfd

Я пытался с awk, cmp, comm, diff и ничего

это команды, которые я пытаюсь запустить в командной строке

awk '(NR==FNR){a[$1]; next}($2 in a){print $1}' file1 file2 > test.csv

1 Ответ

0 голосов
/ 04 сентября 2018

Вы пробовали grep, это очень мощный

grep -F <file1> <file2> | cut -d ' ' -f1

или просто awk:

awk '(NR==FNR){a[$1]; next}($2 in a){print $1}' <file1> <file2>

Однако, так как вы уже попробовали это решение, это может быть проблема с завершениями CRLF из-за копирования dos / windows. Хотя вы можете решить эту проблему с помощью dos2unix, вы также можете использовать следующую строку awk (только GNU awk):

awk -v RS='\r?\n' '(NR==FNR){a[$1]; next}($2 in a){print $1}' <file1> <file2>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...