我需要比较两个文件f1.txt和f2.txt并获取公共元素,对于这种情况,我希望匹配每行的第一个元素来打印附加公共元素的整行?
f1.txt
3
4
5
f2.txt
1AAAAAA
2BBBBBB
3CCCCCC
4DDSDDDD
5EEEEEE
6FFFFFFF
7GGGGG
5EHHH
预期结果:
3CCCCCC
4DCCCCC
5EEEEEEE
答案 0 :(得分:0)
awk 'FNR==NR{
a[$1];
next
}
{
split($1,b,"") ;
if( b[1] in a && !c[b[1]] ) {
print $1;
c[b[1]]=1
}
}' f1.txt f2.txt
答案 1 :(得分:0)
$ awk -v FS= 'NR==FNR{a[$1];next} $1 in a{print; delete a[$1]}' f1.txt f2.txt
3CCCCCC
4DDSDDDD
5EEEEEE
以上内容适用于GNU awk和任何其他awk,当FS为null时,它会将记录拆分为单个字符的字段。使用其他awks使用substr($ 0,1,1)。