고유하게 지정된 필드가 있는 행 인쇄

고유하게 지정된 필드가 있는 행 인쇄

고유한 필드 합계를 기반으로 행을 인쇄하는 방법은 무엇입니까 2?34

필드 2와 3은 숫자, 필드 3은 알파벳이며 파일에는 총 2500줄이 있습니다.

입력하다:

10,11,12,A,3
10,11,12,A,4
10,11,12,B,3

산출:

10,11,12,B,3

답변1

그리고 awk:

 awk -F, 'NR==FNR{ dup[$2, $3, $4]++; next } (dup[$2, $3, $4]==1)' infile infile

여기서는 입력을 두 번 처리합니다 . 먼저 파일을 읽고 infile지정된 필드를 기반으로 반복되는 각 줄을 해당 줄의 발생 횟수를 늘릴 때마다 이라는 연관 배열 $2에 저장합니다.$3$4dup++

다음 단계에서는 지정된 필드가 한 번만 나타나는 경우 전체 줄을 확인하고 인쇄합니다.

답변2

예를 들어:

egrep '^[^,]*,11,12,B,' input.file

설명하다:

^줄의 처음부터

[^,]","가 아닌 모든 것

*가능한 한 여러 번

,11,12,B,그게 당신이 찾고 있는 거예요

관련 정보