k1とk2という2つのファイルがあり、共通キー「ブックタイトル」に基づいてこれら2つのファイルをマージしようとしています。
k1
John | Dreaming of Day | IEEEJournal
Akon | Dreaming of Night | ACMJournal
k2
Dreaming of Day | Fiction
Dreaming of Night | Non-Fiction
kout:本のタイトルに合わせてマージする必要があります。つまりDreaming of Day
、Dreaming of Night
John | Fiction | IEEEJournal
Akon | Non-Fiction | ACMJournal
私は次のawkスクリプトを書いた:
awk -F"|" 'BEGIN{OFS="|"}FNR==NR{a[$1$2]=$3;next}($1$2 in a && $3=$3"|"a[$1$2])' k1 k2
しかし、これはうまくいかないようです。
ベストアンサー1
これはgawk
次のように動作するようですmawk
。
awk -F' *[|] *' -vOFS=' | ' '
NR==FNR {a[$1]=$2;next} $2 in a {print $1, a[$2], $3}
' k2 k1
John | Fiction | IEEEJournal
Akon | Non-Fiction | ACMJournal