内容に応じて行の番号を付けたいです。最初の行は 1 に番号が付けられ、2 番目の行は最初の行と同じ場合は 2 に、異なる場合は 1 に指定されます。たとえば、
asdf
asdf
asdf
asdf
dfg
dfg
dfg
qwert
qwert
er
qwert
er
asdf
結果は次のとおりです。
1 asdf
2 asdf
3 asdf
4 asdf
1 dfg
2 dfg
3 dfg
1 qwert
2 qwert
1 er
3 qwert
2 er
5 asdf
ベストアンサー1
awkを使うと簡単になります。
awk '{ print ++c[$0],$0 }' < test
ここでtestはデータを含むファイルです。ここではいくつかの仮定をしていますが、質問では明確ではありません。まず、ファイルがすでにソートされているとします。そうでない場合:-
sort < test | awk '{ print ++c[$0],$0 }'
また、最初の単語(2つ以上必要な場合)だけでなく、行全体が重要だと思います。最初の単語のみを処理するには、次のようにします。
awk '{ print ++c[$1],$0 }' < test