2 つのファイルがあり、両方のファイルから必要な列を取得して、それらをマージする必要があります。これを行うには awk を使用したいと思います。
したがって、FileB からは $9->$12 が必要です。FileA の $4 が FileB の $12 の内容と一致する場合、FileA の $1、$2、$3、$5、および $6 が必要になります。
これが私がこれまでに持っているものです:
script.awk:
FNR==NR {
blah = $12
gsub(/"/,"",blah); gsub(/;/,"",blah);
array[blah]=$9,$10,$11,$12 ## This breaks here
next
}
{
if ($4 in array) {
print $1,"TransMap","Tcon",$2,$3,$5,$6,".",array[$4]
}
}
次のように実行します: awk -f script.awk fileB fileA したがって、FileB の $12 は完全一致ではないことに注意してください。$4 との一致は、次の形式になります。(したがって、gsubs)。最終出力の $4 にあるものとは対照的に、その形式が必要です。そのため、このようにしました。
array[blah]=$9,$10... 改行 awk (明らかに)。しかし、FileB の 4 つのフィールドすべてが必要です。どうすれば修正できますか? awk のオンライン手順は明確ではありませんでした。