첫 번째 열의 동일한 항목을 하나의 항목으로 병합하는 방법

첫 번째 열의 동일한 항목을 하나의 항목으로 병합하는 방법

항목이 있는 파일을 여기저기에 분산시켜 두십시오. 예:

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 -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

배열 요소의 출력을 특정 순서로 지정하려면 이에 대한 규칙을 제공해야 합니다.

관련 정보