列の値の数を変更[閉じる]

列の値の数を変更[閉じる]

次のサンプルファイルがあります。

2931
7895
6688
7895
2931
2931
6688

この列と次のような他の列を含むファイルを生成したいと思います。

2931 1
7895 2
6688 3
7895 2
2931 1
2931 1
6688 3

ベストアンサー1

それぞれの新しい種類のコンテンツに番号を付けてから、同じコンテンツを持つすべての行にその番号を表示する必要がありますか?

awk '
    { if ( !seen[$0]++ ) {
       ind++ ; n[$0]=ind
      }
    }

    { print $0, n[$0] }
'

必要なことをする

使用エドモートン提案は次のように簡略化され、「awk」に似ています。

awk '
   ! ($0 in n) { n[$0]=++ind }
               { print $0, n[$0] }
'

おすすめ記事