我有两个看起来这样的文件:
file1:
apples
pears
grapes
oranges
melon
file2:
gene1 apples
gene2 television
gene3 pears
gene4 homeless
期望的输出:
gene1 apples
gene3 pears
我想用awk比较file1的column1和file2的column2并打印出整行的file2?我怎样才能做到这一点?
答案 0 :(得分:1)
您可以使用file1的每一行作为file2上使用的grep值来执行此操作,如下所示:
cat file1.txt | xargs -I{} sh -c 'cat file2.txt | grep {}'
甚至更好:
grep -f file1.txt file2.txt
注意:
第一个例子容易受到注入攻击。也就是说,有人可能会将恶意bash命令放入您处理的文本文件中以执行它。第二个例子并非如此。
第二个例子的主要缺点是,如果你在file1的末尾有额外的空格,它就不会匹配。 "apple"
的处理方式与"apple "
(第二个苹果末尾的空格)的处理方式不同。
资源: