最初のフィールドに重複した値を持つファイルがあります。ファイルには合計4つのフィールドがあります。残りの3つのフィールドの値をマージしたいと思います。
入力ファイル:
123|abc123||GFD
234|xyz456|tsdrf34526|KLD
123||cdft091|GFD
123|abc123|cdft091|GFD
456|sdf872||LHG
希望の出力:
123|abc123|cdft091|GFD
234|xyz456|tsdrf34526|KLD
456|sdf872||LHG
誰でも助けることができますか?
答え1
awk
緊急の要件を満たすと思われるプログラムは次のとおりです。
#!/bin/awk -f
BEGIN {FS = "|"; OFS="|"}
{
a[$1]++
f1[$1] = $2
f2[$1] = $3
f3[$1] = $4
}
END { for (i in a) print i, f1[i], f2[i], f3[i] }