最初の列の値に基づいてすべてのファイルの内容をグループ化したいと思います。出力がソートされた形式であれば、より良いでしょう。
入力する:
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]
とその値のリストを印刷します。