[user@notebook ~]$ printf '1\n5\n3\n3\n4\n2\nA\nB\na\n'
1
5
3
3
4
2
A
B
a
[user@notebook ~]$
[user@notebook ~]$ printf '1\n5\n3\n3\n4\n2\nA\nB\na\n' | awk '!seen[$0]++'
1
5
3
4
2
A
B
a
[user@notebook ~]$
[user@notebook ~]$ printf '1\n5\n3\n3\n4\n2\nA\nB\na\n' | awk 'BEGIN{IGNORECASE=1} !seen[$0]++'
1
5
3
4
2
A
B
a
[user@notebook ~]$
묻다:이 사건을 어떻게 무시할 수 있습니까? 따라서 "A" 또는 "a"만 남게 됩니다.
답변1
printf '1\n5\n3\n3\n4\n2\nA\nB\na\n' | awk '!seen[tolower($0)]++'
당신이 찾고있는 출력을 생성합니다.
awk
매뉴얼 페이지 에서 :
IGNORECASE는 모든 정규식 및 문자열 작업의 대소문자 구분을 제어합니다. [...]참고: 배열 첨자는 영향을 받지 않습니다.
그렇기 때문에 사용해도 IGNORECASE
아무런 효과가 없습니다.