拥有一个文件,其中的条目遍布各处。例子:
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
答案1
您似乎想要的与排序无关,但可以通过创建一个以第一列的值为键的哈希(关联数组)来实现,您将其他列的大小写转换副本推入其中 - 然后您可以将其删除- 复制并打印。以 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
如果您希望数组元素的输出具有特定的顺序,那么您需要为此提供一个规则。