コマンドラインの2番目の列の共有値に基づいて、列にカンマ区切り値のリストを含むテキストファイルを作成します。

コマンドラインの2番目の列の共有値に基づいて、列にカンマ区切り値のリストを含むテキストファイルを作成します。

一連のテキストファイルを作成したいと思います。各テキストファイルには、入力ファイルの列2の共有値に基づいて、入力ファイルの列1の値のカンマ区切りリストが含まれています。

入力ファイル形式:

CB-03-01-01     CB-03.1
CB-03-01-02     CB-03.1
CB-03-01-03     CB-03.1
CB-03-02-01     CB-03.2
CB-03-02-02     CB-03.2
CB-03-02-03     CB-03.2
CB-08-01        CB-08
CB-08-02        CB-08
CB-08-03        CB-08

希望の出力:CB-03.1.txt

CB-03-01-01,CB-03-01-02,CB-03-01-03

CB-03.2.txt

CB-03-02-01,CB-03-02-02,CB-03-02-03

CB-08.txt

CB-08-01,CB-08-02,CB-08-03

あなたが提供できる助けに感謝します!

ベストアンサー1

使用できるコマンドは次のとおりです。

awk '{a[$2]=a[$2]","$1} END {for(i in a) print substr(a[i],2) >i".txt"}' input_file

a連想配列の場合、substrこの関数は配列要素の最初の割り当てから前のコンマを削除します。

コメントによっては、一部のバージョン>i".txt"に置き換えて開いたファイルハンドラを閉じる必要があります。>(i".txt"); close(i".txt")awk

おすすめ記事