2

我有两个文件,比如说file1file2,要进行比较并将其放入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强制和匹配值之一$2$3来自file2,如果两者($2,$3)都匹配,那么它应该在两条记录中(单条记录也可以)为“domain5,粉红色,橙色”。

我是 awk 命令的新手。请帮助我实现这一目标awk

我有这个不满足我条件的简单命令

awk 'NR==FNR{x[$1];next}($2,$3) in x' FS=',' file1 file2 >file3
4

1 回答 1

3
awk -F, 'BEGIN{OFS=","} 
         NF>1 {s[$2]=s[$3]=$1;} 
         NF==1 {print s[$1],$1}' input2 input1

输出

domain1,red
domain2,green
domain3,blue
domain1,red
domain4,yellow
domain4,pink
domain5,orange
于 2013-05-21T21:52:26.817 回答