Sort
您如何將第一列中的相同條目合併為一個條目
有一個文件,條目到處都是。例子:
10.11.12.13 tiger adfa afinhhdddd tiger 10.11.12.13 tiger tiger 123 10.11.12.13 tiger abc 10.11.12.13 tiger abc 10.11.12.13 TIGER ABC 20.21.22.23 hola hola hola123 upside down 20.21.22.23 hola hola hola123 upside DOWN HOLA 20.21.22.23 hola hola hola123 upside down
最終輸出應如下所示:
10.11.12.13 tiger abc 123 adfa afinhhdddd 20.21.22.23 hola hola123 upside down
您似乎想要的與排序無關,但可以通過創建一個以第一列的值為鍵的雜湊(關聯數組)來實現,您將其他列的大小寫轉換副本推送到其中 - 然後您將- 複製和列印。以 Perl 為例
perl -MList::MoreUtils=uniq -alne ' push @{ $h{shift @F} }, map { lc $_ } @F if $_ =~ /\S/ }{ foreach $k (sort keys %h) { print "$k\t", join " ", uniq @{ $h{$k} } } ' file
前任。:
$ perl -MList::MoreUtils=uniq -alne ' push @{ $h{shift @F} }, map { lc $_ } @F if $_ =~ /\S/ }{ foreach $k (sort keys %h) { print "$k\t", join " ", uniq @{ $h{$k} } } ' file 10.11.12.13 tiger adfa afinhhdddd 123 abc 20.21.22.23 hola hola123 upside down
如果您希望數組元素的輸出具有特定順序,則需要為此提供規則。