2

と という 2 つのファイルが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生成する必要があり、一致する値はまたはから生成されます。両方 ($2,$3) が一致する場合は、「domain5,ピンク、オレンジ」。$1$2$3file2

私は 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 に答える