옵션이 어떻게 작동하는지 확인하세요.

옵션이 어떻게 작동하는지 확인하세요.

나는 최근에 awk를 발견했습니다옵션. 파일에서 중복 항목을 제거하는 것을 볼 수 있습니다. 작동 방식에 대해 몇 가지 설명을 제공할 수 있습니다.

cat tes
1
2
3
1
1
1
3
4

출력을 보려면 awk를 사용하십시오.

cat tes | awk '!seen[$0]++'

1
2
3
4

답변1

seen연관 배열의 임의의 이름입니다. 이것은 옵션이 아닙니다. 대신 또는 대부분의 다른 이름을 a사용할 수 있습니다 .b

코드는 !seen[$0]++테스트와 증분으로 구성됩니다.

seen[$0]즉, 현재 입력 행 키와 연결된 배열 요소의 값이 0(또는 비어 있는 경우) 인 경우 다음의 $0부울 !seen[$0]값은진짜.

그런 다음 배열의 해당 키에 해당하는 값이 $0증가합니다. 이는 테스트가 다음을 의미합니다.잘못된$0다른 모든 경우에는 동일한 값이 발견됩니다.

테스트 효과는진짜입력에 특정 줄이 처음으로 표시될 때잘못된다른 모든 시간.

테스트에 연결된 작업이 없을 때마다진짜, 이것기본작업이 트리거됩니다. 기본 작업 은 현재 레코드를 인쇄하는 { print }or 와 같습니다 . 이 예에서는 모든 계정과 목적에 대해 현재 수정되지 않은 입력 행입니다.{ print $0 }

관련 정보