ほぼ2000行のファイルがあります。ファイル形式は次のとおりです。
12 34
0 2
2 3
7 9
1 2
306 237
0 9
12 134
2 7
2 9
306 3
重複した最初の列を削除し、2番目の列で構成するbashスクリプトを作成しようとしています。次のような結果を期待しています。
0 2 9
1 2
2 3 7 9
7 9
12 34 134
306 237 3
いくつかのコードを試しましたが、目的の結果が得られませんでした。どうすればこれを達成でき、何を使うべきですか?
ベストアンサー1
重複行を使用sort
およびuniq
削除してから、awk
最初の列の値で索引付けされた配列を使用してから、2番目の列を配列の各値に追加できます。次のようになります。
sort test.txt | uniq | awk '{if(col[$1])col[$1]=col[$1]" "$2; else col[$1]=$2;}; END{for (i in col) print i, col[i]}'
test.txt
入力ファイルです。
正しい値を持つ配列に新しい列を追加する前に、配列が空であることを確認する必要があります。値の間にスペースを追加するだけです。