Perl
根據第一列的值對單詞進行分組
我想根據第一列的值對所有文件內容進行分組。如果輸出是排序的形式會更好。
輸入:
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
如果我理解正確,您正在尋找
perl -lane 'push @{$k{$F[0]}},$F[1]; END{$"=", ";print "$_ @{$k{$_}}" for sort keys(%k)}' file
沒有理由明確分割線,
-a
標誌已經為你做了。它將每個輸入行拆分為@F
數組。因此,在這裡我們創建了一個%k
雜湊,其鍵是第一個欄位,其值是第二個欄位的相應列表。然後,最後,我們對雜湊鍵進行排序,將列表分隔符 ($"
) 設置為,[space]
並列印每個鍵及其對應的值列表。