첫 번째 열을 기준으로 반복 행을 인쇄합니다.

첫 번째 열을 기준으로 반복 행을 인쇄합니다.

첫 번째 열이 반복되는 행을 가져오고 싶습니다(첫 번째 열에는 항상 32자가 있으므로 숫자 32를 사용합니다). 지금까지 내가 알아낸 것:

sort | uniq -d -w 32 filename

문제는 한 줄이 아닌 두 줄을 원한다는 것입니다. 예를 들어:

283158c7da8c0ada74502794fa8745eb  ubuntu-6.10-alternate-amd64.iso
5717dd795bfd74edc2e9e81d37394349  ubuntu-6.10-alternate-i386.iso
5717dd795bfd74edc2e9e81d37394349  ubuntu-6.10-alternate-powerpc.iso

내가 원하는 출력은 다음과 같습니다.

5717dd795bfd74edc2e9e81d37394349  ubuntu-6.10-alternate-i386.iso
5717dd795bfd74edc2e9e81d37394349  ubuntu-6.10-alternate-powerpc.iso

아니요

5717dd795bfd74edc2e9e81d37394349  ubuntu-6.10-alternate-i386.iso

내가 얻은 것

답변1

노력하다

 ... | awk '{if ($1 in used ) {
               if (used[$1] != "" ) print used[$1] ;
               print ;} else used[$1]=$0 ;} '

답변2

펄 사용:

[...] | perl -lane 'grep(@F[1], @x)?print:push(@x, @F[1])'
% cat in
283158c7da8c0ada74502794fa8745eb  ubuntu-6.10-alternate-amd64.iso
5717dd795bfd74edc2e9e81d37394349  ubuntu-6.10-alternate-i386.iso
5717dd795bfd74edc2e9e81d37394349  ubuntu-6.10-alternate-powerpc.iso
% cat in | perl -lane 'grep(@F[1], @x)?print:push(@x, @F[1])'
5717dd795bfd74edc2e9e81d37394349  ubuntu-6.10-alternate-i386.iso
5717dd795bfd74edc2e9e81d37394349  ubuntu-6.10-alternate-powerpc.iso

관련 정보