キー列に基づいて重複した値の最初の列 - Linux

キー列に基づいて重複した値の最初の列 - Linux

このようにパイプで区切られたファイルがあります。ここで、2番目の列は、最初の列のIDをグループ化するキーです。

456566|23233|
456545|23233|
456745|23233|
456456|23234|
456356|23234|

2番目のフィールドのIDと2番目の列のグループの残りのIDに基づいて、最初のIDが繰り返されるこのようなファイルを作成しようとしています。 awkのようなユーティリティを使ってこれを行う方法を学びたいです。

出力

456566|456545
456566|456745
456456|456356

ベストアンサー1

$ cat tst.awk
BEGIN { FS=OFS="|" }
$2 != prevKey {
    firstId = $1
    prevKey = $2
    next
}
{ print firstId, $1 }

$ awk -f tst.awk file
456566|456545
456566|456745
456456|456356

おすすめ記事