2016-12-25 8 views
3

[\u4e00-\u9fff]은 vim에서 중국어 문자와 일치 할 수 있습니다.중국어 문자와 grep의 일치 방법은 무엇입니까?

:%g/[\u4e00-\u9fff]/d 

위의 명령은 중국어 문자가 포함 된 모든 행을 삭제할 수 있습니다.

ls /tmp/test 
ktop 1_001.png.bak 
fonts.dir.bak 
New 
Screenshot from 2016-09-12 16:50:29.png.bak 
你好 

이제 이름이 중국어 문자 인 파일을 추출하고 싶습니다.

ls /tmp/test |grep -P '[\x4e\x00-\x9f\xff]' 

이 명령은 이름이 중국어 문자 인 파일을 가져올 수 없습니다.
해결 방법?

ls/tmp/test | grep -v '[a-z]'을 얻을 수는 있지만 원하는 내용입니다.

+2

이'1!/tmp를/테스트를 시도해보십시오

ls /tmp/test | grep -P '[\p{Han}]' 

\p{Han}the Unicode-script category properties usable in any PCRE-supporting engine 중 하나입니다 | grep -P "[一 - 龥]"'. –

답변

5

은 한 (중국어) 문자가 그 단지 라인 (파일 이름)과 일치하려면 사용할 수 있습니다 [\p{Han}] :

\p{Common} \p{Arabic} \p{Armenian} \p{Bengali} \p{Bopomofo} 
\p{Braille} \p{Buhid} \p{Canadian_Aboriginal} \p{Cherokee} 
\p{Cyrillic} \p{Devanagari} \p{Ethiopic} \p{Georgian} \p{Greek} 
\p{Gujarati} \p{Gurmukhi} \p{Han} \p{Hangul} \p{Hanunoo} \p{Hebrew} 
\p{Hiragana} \p{Inherited} \p{Kannada} \p{Katakana} \p{Khmer} \p{Lao} 
\p{Latin} \p{Limbu} \p{Malayalam} \p{Mongolian} \p{Myanmar} \p{Ogham} 
\p{Oriya} \p{Runic} \p{Sinhala} \p{Syriac} \p{Tagalog} \p{Tagbanwa} 
\p{TaiLe} \p{Tamil} \p{Telugu} \p{Thaana} \p{Thai} \p{Tibetan}