Извлечь данные из одного файла, соответствующие строкам из другого файла - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть файл данных file1 следующим образом:

sample1
some text
sample1

sample2
some text
sample2

sample3
some text
sample3
...

И список идентификаторов ссылок в файле2:

sample3
sample13
sample21
...

Теперь я хочу извлечь информацию из файла file1, соответствующую строкам из файла file2, поэтому вывод будет:

sample3
some text
sample3

sample13
some text
sample13

...

Я пытался использовать awk и sed, но, к сожалению, я не смог напечатать все нужные мне строки.

1 Ответ

4 голосов
/ 26 апреля 2019

Вы были близки, но вам нужно было установить RS="" для file1 (чтобы читать пустые строки, разделенные блоками вместо строк):

$ awk 'NR==FNR{a[$1];next}$1 in a' file2 RS="" file1
sample3
some text
sample3

Для разделения записей вы можете:

$ awk 'BEGIN{ORS="\n\n"}NR==FNR{a[$1];next}$1 in a' file2 RS="" file1
sample3
some text
sample3

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