最初の列の値に基づいて単語をグループ化します。

最初の列の値に基づいて単語をグループ化します。

最初の列の値に基づいてすべてのファイルの内容をグループ化したいと思います。出力がソートされた形式であれば、より良いでしょう。

入力する:

1 foo
2 bar
1 foobar
2 barbar
3 apple
4 banana
3 mango
5 orange

予想出力:

1 foo, foobar
2 bar, barbar
3 apple, mango
4 banana
5 orange

ベストアンサー1

私が正しく理解したなら、あなたは探しています

perl -lane 'push @{$k{$F[0]}},$F[1]; 
            END{$"=", ";print "$_ @{$k{$_}}" for sort keys(%k)}' file

明示的に行を分割する理由はありません。フラグ-aはこれを行います。各入力行を@F配列に分割します。したがって、ここでは%kキーが最初のフィールドで値が2番目のフィールドの対応するリストであるハッシュを作成します。次に、最後にハッシュキーを並べ替え、$"リスト区切り記号()を設定し、各キー,[space]とその値のリストを印刷します。

おすすめ記事