我有2个文件,
文件1:
alfa numbers numbers
vita numbers numbers
gama numbers numbers
delta numbers numbers
epsilon numbers numbers
zita numbers numbers
...
file2的:
'zita' keepnumbers keepnumbers keepnumbers
'gama' keepnumbers keepnumbers keepnumbers
'misc' keepnumbers keepnumbers keepnumbers
'alfa' keepnumbers keepnumbers keepnumbers
...
我想 打印file2的行 其中第一个单词(在第一列) 匹配文件1的第一个单词(在第一列中),但保持第一个文件的顺序。 输出应该看起来像
'alfa' keepnumbers keepnumbers keepnumbers
'gama' keepnumbers keepnumbers keepnumbers
'zita' keepnumbers keepnumbers keepnumbers
我已经尝试了
awk 'NR==FNR{a[$1]++;next}a[$1]' file1 file2 > file3
但file3中的顺序与file2相同。 此外,awk命中了引号符号'有没有办法忽略它并只读取引号内的名字?
答案 0 :(得分:0)
你很近,试试
awk -v q="'" 'NR==FNR{a[$1]=$0;next}{$1=q $1 q}$1 in a{print a[$1]}' file2 file1 > file3
q
a[$1]=$0
,以便我们在file2中包含这些行,以便以后打印。