我有两个文件,其中第一列可能具有相同的值。我想匹配两个文件的第一列,并在FILE1中打印出匹配的行。
FILE1:
xxx1 yyy yyy yyy
xxx2 yyy yyy yyy
xxx3 yyy yyy yyy
FILE2:
xxx3 zzzz
xxx4 zzzz
OUTPUT:
xxx3 yyy yyy yyy
欢迎任何建议。
祝福
答案 0 :(得分:3)
答案 1 :(得分:1)
awk 'FNR==NR{ a[$1]=$0;next } ($1 in a)' file2 file1
答案 2 :(得分:1)
这是我的食谱:
awk 'key[$1]; FNR==NR {key[$1]=1}' file2 file1
我假设两个列表都按键排序(第一列),每个键只在文件中出现一次。第一个模式简称:
key[$1] != 0
在这种情况下,默认操作是打印整行。此模式隐式适用于第二个文件(file1),因为对于第一个文件,该键尚未标记。 在第二种模式中:
FNR==NR {key[$1]=1}
FNR == NR意味着我们正在处理第一个文件(在这种情况下为file2)。在这种情况下,我们标记该密钥以供以后参考。