我发现了许多使用awk从另一个文件中查找值的示例,但它们都具有相同的FS和RS。我想知道是否有一种方法可以实现FS和RS不同的文件。我知道可以通过预先转换其中一个文件来实现,但我想知道是否有任何优雅的解决方案。
如下所示,搜索file1中的密钥,这些密钥在dn:
记录的第二个中找不到。
文件1:
key1,field1_1,field2_1
key2,field1_2,field2_2
key3,field1_3,field2_3
file2的:
dn: key1,xxxxxx
sn: field1_1
l: field2_1
dn: key2,xxxxxx
sn: field1_2
l: field2_2
因此,所需的输出应为key3
答案 0 :(得分:4)
$ awk 'NR==FNR{keys[$2]; next} !($1 in keys){print $1}' RS='' FS='[[:space:],:]+' file2 RS='\n' FS=',' file1
key3