shell / awk-如果另一文件中存在一列,则打印行的某些字段

仇杀队

我有一个Universe文件/tmp/universe.txt

aaa
bbb
ccc

我有另一个csv文件,并且如果第一个字段存在于/tmp/universe.txt中,则我只想打印此csv文件行中的某些字段

例如此文件

aaa,1
ddd,3
ccc,2

我要列印

aaa,1
ccc,2

我该如何实现?我可以写一个python / perl脚本,但是我怀疑awk / bash等中有更优雅的解决方案。

卡洛莉·霍瓦斯(Karoly Horvath)

这可能很简单:

grep -f universe.txt file

但是,此解决方案假定您列出了在中不能部分匹配的完整单词universe.txt例如:列出aa1也将匹配aaa,1

要进行完全匹配,您需要:

grep -f <(sed 's/.*/^\0,/' universe.txt) file

假设中没有任何特殊字符universe.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章