Как бы вы объединили одинаковые записи в первом столбце в одну запись [закрыто]

0
10.05.2019, 22:20
1 ответ

То, что вы, кажется, хотите, имеет мало общего с сортировкой, но может быть достигнуто путем создания хэш-(ассоциативного массива )с ключом на значениях первого столбца, в который вы помещаете case -преобразованные копии из других столбцов -, которые вы затем де -продублируете и распечатаете.Например, в 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

Если вам нужен определенный порядок вывода элементов массива, вам нужно указать для этого правило.

1
28.01.2020, 02:40

Теги

Похожие вопросы