我有两个文件,比如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
作为必填项,匹配值为$2
或$3
来自file2
,如果两者($ 2,$ 3)匹配,那么它应该是两个记录(单个记录也可以)为“domain5,pink,orange”。
我是awk命令的新手。请用awk
帮助我实现这一目标!
我有这个简单的命令,这不足以满足我的条件
awk 'NR==FNR{x[$1];next}($2,$3) in x' FS=',' file1 file2 >file3
答案 0 :(得分: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