【发布时间】:2013-05-22 05:57:19
【问题描述】:
我有两个文件,比如file1 和file2,要进行比较并将其放入file3。
file1:
red
green
blue
red
yellow
pink
orange
file2:
domain1,red,-
domain2,-,green
domain3,blue,-
domain4,yellow,pink
domain5,grey,orange
现在我需要在file3中输出如下:
domain1,red
domain2,green
domain3,blue
domain1,red
domain4,yellow
domain4,pink
domain5,orange
对于file1中的每条记录,如果匹配,则需要生成$1作为必填项,并且匹配值是file2中的$2或$3,如果两者($2,$3)都匹配,那么它应该在两条记录中(单条记录也可以)作为“domain5,pink,orange”。
我是 awk 命令的新手。请通过awk 帮助我实现这一目标!
我有这个简单的命令并不能满足我的条件
awk 'NR==FNR{x[$1];next}($2,$3) in x' FS=',' file1 file2 >file3
【问题讨论】:
-
请解释为什么输出中有两个
domain1,red?错别字? -
因为我在 file1 中有两次红色,红色的搜索模式发生了两次。
-
呃..我现在看到了..我的回答隐式删除了重复项,不正确...删除..
-
嗨肯特,你的回答 wud 就满足了我的要求,因为事实上我需要删除重复项。但是有一个小问题,如果我需要在不区分大小写的情况下实现相同的功能怎么办!!相同的命令就足够了吗?问候