我有一个数据文件文件1,如下所示:
sample1
some text
sample1
sample2
some text
sample2
sample3
some text
sample3
...
以及文件中的引用ID列表2:
sample3
sample13
sample21
...
我现在要从file1中提取与file2中的行对应的信息,因此输出如下:
sample3
some text
sample3
sample13
some text
sample13
...
我试着使用awk和sed,但不幸的是我无法打印出我需要的所有行。
最佳答案
您已接近,但需要为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
...