awk에서 중복 레코드를 제거하고 해당 행을 삭제하고 싶습니다.

awk에서 중복 레코드를 제거하고 해당 행을 삭제하고 싶습니다.

열 2에서 중복 레코드를 확인하고 awk에서 이 행을 삭제하고 싶습니다.

create a
delete a
create b
create c
delete c
create d
delete f
create f
create g
create h

예상 출력

create b
create d
create g
create h

awk에서 이 명령을 사용해 보았으나 반대 방향으로 실행되었지만 정확한 결과는 나오지 않았습니다.

참고: AWK는 필수가 아닙니다.

awk -F" " '{ if( (++count[$2]==2) ) print  }'

답변1

"중복 레코드"는 연속된 행에서 반복되는 것을 의미한다고 가정합니다. 그렇지 않은 경우 전체 파일의 고유 레코드를 고려하려면 두 번째 필드의 데이터를 먼저 정렬하십시오( sort -k 2,2 file).

사용 uniq:

$ uniq -f 1 -u file
create b
create d
create g
create h

-f 1비교를 수행할 때 첫 번째 공백으로 구분된 필드( )를 무시하고 일치하는 모든 줄을 출력합니다.아니요연속된 라인에 대해 ( )를 반복합니다 -u.

관련 정보