打印另一个文件指定的行表

时间:2012-03-15 14:10:33

标签: bash shell awk

我需要使用awk输出文件的行,其中第一列的值与第二列的值匹配第二列的值。通过示例更容易解释:

file1.txt
1
2
3
4
5

file2.txt
1   dog
4   fish
6   cat
9   rabbit

我希望file3.txt为:

1   dog
4   fish

任何帮助表示赞赏

2 个答案:

答案 0 :(得分:2)

您可以尝试join命令:

$ join file{1,2}.txt

或使用awk

$ awk 'FNR==NR{dict[$1]; next}; $1 in dict' file{1,2}.txt

答案 1 :(得分:1)

awk 'FNR==NR{arr[$1]; next}; $1 in arr' file1.txt file2.txt > file3.txt