grep
몇번의 검색 끝에 대문자가 포함된 단어를 찾아 중복 없이 나열하는 명령을 찾았습니다 .
grep -hoP "\w*[[:upper:]]+\w*" * | sort -u
그러나 와 같은 문자가 포함된 단어의 경우 ê
grep은 해당 문자 앞의 단어만 반환하고 해당 문자와 그 뒤의 모든 항목을 무시하는 것 같습니다. 내 텍스트는 다음과 같이 인코딩되었습니다 UTF-8
. 내 검색 기준에 문제가 있는 것 같습니다.
아무것도 모르는 사람을 위한 쉬운 해결책이 있을까요 grep
?
답변1
grep
다음 예에 표시된 것처럼 with를 사용 -P
하여 Perl 정규식 기능을 활성화한 다음 유니코드 문자 범위를 문자 클래스로 지정할 수 있습니다(아래 문자 클래스에서 바꾸려는 언어 유니코드 찾기).
grep -oP '\w*[\x00-\x99]+\w*' infile