awkを使用して同じ行の重複値を削除するには?

awkを使用して同じ行の重複値を削除するには?

同じ行から重複した列/フィールドを削除したいと思います。試してみましたが、入れ子になったループ、条件ステートメント、および配列を含む長いコードが機能しない結果が出ました。

  • 入力データ:
    1 2 3 4
    1 2 3 1
    1 2 1 3
    4 4 3 2
    3 3 3 2
    1 1 1 1
    5 2 2 7
    
  • 希望の出力:
    1 2 3 4
    1 2 3 
    1 2 3
    4 3 2
    3 2
    1
    5 2 7
    

ベストアンサー1

使用awk:

awk '{
    for(i=1; i<=NF; i++)
        printf "%s", (!seen[$i]++? (i==1?"":FS) $i: "" )
    delete seen; print ""
}' infile

おすすめ記事