awk를 사용하여 동일한 열에서 동일한 내용을 가진 행을 삭제하는 방법

awk를 사용하여 동일한 열에서 동일한 내용을 가진 행을 삭제하는 방법

다음과 비슷한 대용량 파일이 있습니다.

H2,3,5,9,ef,ty,i;
H2,7,5,6,rt,hg,j;
T2,5,5,0,207,3.7,00,...,2023:46:18:14:31,76;
T2,5,5,0,207,3.5,00,...,2023:46:18:14:31,76;
T2,5,5,0,119,3.5,00,...,2023:46:18:14:32,10;
T2,5,5,0,207,3.5,00,...,2023:46:18:14:32,15;
T2,5,5,0,186,3.4,00,...,2023:46:18:14:32,16;
T2,5,5,0,207,4.6,00,...,2023:46:18:14:32,30;
....

다음 줄을 제거해야 합니다.

  1. T2,5,5,0,207부터 시작
  2. 필드 15에 중복된 타임스탬프가 있습니다.

다른 모든 행은 변경하지 않고 그대로 둡니다.

다양한 조합을 시도했지만 지금까지 확인한 조합 중 어느 것도 작동하지 않았습니다.

awk -F ',' ' x!=$15 { if ($1 == T2 && $5 == 207) {x=$15; print$0} else print$0} ' test > test1

어떤 조언이라도 정말 감사하겠습니다! 감사해요

답변1

이 시도:

$ awk -F, '!seen[$1,$2,$3,$4,$5,$8]++' file

산출

H2,3,5,9,ef,ty,i;
H2,7,5,6,rt,hg,j;
T2,5,5,0,207,3.7,00,...,2023:46:18:14:31,76;
T2,5,5,0,119,3.5,00,...,2023:46:18:14:32,10;
T2,5,5,0,186,3.4,00,...,2023:46:18:14:32,16;

설명하다

  • awk실제 조건에서의 기본 동작은 이므로 print여기서는 필요하지 않습니다.
  • 이는 !seen[x]++작업 수행의 약어입니다 uniq. 확인하다여기

이식성

적용 대상:

  • gawk
  • mawk
  • busybox awk
  • nawk(기본 freeBSD awk)

그리고 모든 awk구현, 감사합니다에드 모튼

기록된 원본 스니펫:

awk -F, '
     ($1=="T2" && $2==5 && $3==5 && $4==0 && $5==207 && !seen[$8]++) ||
    !($1=="T2" && $2==5 && $3==5 && $4==0 && $5==207)
' file

답변2

이것이 당신이 원하는 것입니까?

$ awk -F, '/^T2,5,5,0,207,/ && seen[$15]++{ next }1' infile
H2,3,5,9,ef,ty,i;
H2,7,5,6,rt,hg,j;
T2,5,5,0,207,3.7,00,...,2023:46:18:14:31,76;
T2,5,5,0,119,3.5,00,...,2023:46:18:14:32,10;
T2,5,5,0,207,3.5,00,...,2023:46:18:14:32,15;
T2,5,5,0,186,3.4,00,...,2023:46:18:14:32,16;
....

처음 5개 필드 및 해당 필드 #15의 타임스탬프와 일치 하는 첫 번째 행을 인쇄한 T2,5,5,0,207다음 이전에 표시된 것과 동일한 5개 시작 필드 및 동일한 타임스탬프가 있는 다른 유사한 행을 건너뜁니다. 또한 다른 모든 줄도 무조건 인쇄됩니다. .

답변3

필드별로 중복 항목을 제거해야 한다는 것을 깨달았습니다.

awk -F, '!(/^T2,5,5,0,207/ && A[$(NF-1)]++)' file
H2,3,5,9,ef,ty,i;
H2,7,5,6,rt,hg,j;
T2,5,5,0,207,3.7,00,...,2023:46:18:14:31,76;
T2,5,5,0,119,3.5,00,...,2023:46:18:14:32,10;
T2,5,5,0,207,3.5,00,...,2023:46:18:14:32,15;
T2,5,5,0,186,3.4,00,...,2023:46:18:14:32,16;

A[$(NF-1)]- 이 파일에A[$9]

관련 정보