정렬 및 대소문자 무시 없이 중복 행 제거

정렬 및 대소문자 무시 없이 중복 행 제거

그래서 다음과 같이 정렬하지 않고 중복된 행을 제거하고 싶다고 가정해 보겠습니다.이 스레드하지만 모든 문자열을 대문자나 소문자로 미리 변환하고 첫 번째 결과의 대소문자를 유지하지 않고 대소문자를 구분하지 않는 중복 행을 제거하고 싶습니다. 어떻게 해야 하나요?

답변1

의 변종참조 질문에 허용되는 솔루션당신을 위해 이 일을 해줄 것입니다:

awk '!x[tolower($0)]++'

"미리 모든 문자열을 대문자 또는 소문자로 변환하지 않고"는 위의 명령을 실행하기 전에 문자열을 변환하지 않음을 의미한다고 가정합니다. 이렇게 하면 첫 번째 결과의 대소문자가 보존되지 않습니다. 이 접근 방식은 첫 번째 일치 사례를 유지합니다.

$ awk '!x[tolower($0)]++' <<EOF
éCoLe
École
école
ÉCOLE
EOF
éCoLe

관련 정보