Perl은 유니코드 5.2 까지를 완벽히 지원합니다.
Perl One Liner를 사용하면 기본적인 grep 명령
grep PATTERN text.txt
은
perl -ne 'print if /PATTERN/' text.txt
로 나타낼 수 있습니다.
여기서 Perl이 유니코드문자를 지원하도록 하려면 다음과 같이 하면됩니다.
(터미널 환경은 utf8로 되어있고 text가 utf8 인코딩일 때)
h.txt 파일
abc가나다
abcefg
한글
ㄱㄴㄷ
abd
테스트
$ perl -Mutf8 -CiO -ne 'print if /[ㄱ-힣]/' h.txt
abc가나다
한글
ㄱㄴㄷ
$ perl -Mutf8 -CiO -ne 'print if /[ㄱ-ㅎ]/' h.txt
ㄱㄴㄷ
$ perl -Mutf8 -CiO -ne 'print if /[하-핰]/' h.txt
한글
원래의 모양에서 추가된 옵션은 -Mutf8, -CiO 인데
-CiO 옵션은 utf8 인코딩 파일을 읽어서 Perl 내부유니코드 포멧으로 변환하여
다루고 출력시 utf8인코딩으로 출력하라는 의미이며 ( 참고: http://perldoc.perl.org/perlrun.html )
-Mutf8 는 use utf8와 같은 의미로 코드에 비ASCII문자열이 오면 Perl내부유니코드로
변환하여 다루라는 뜻입니다.
따라서 정규식에 쓰인 한글이 Perl 내부유니코드화 되어 grep과 달리 정확하게 처리되며
위의 패턴으로 Perl One Liner를 사용하면 정규식에서 한글뿐만 아니라 모든 유니코드영역의 문자를
정규표현식에 사용할 수 있습니다.
가-힣___________________
가-힣
그리고 KLDP.NET에 한글 정규식 프로그램 있어요.
___________________
http://blog.aaidee.com
재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.
아이디의 아이디어 무한도전
http://blog.aaidee.com
귀태닷컴
http://www.gwitae.com
Perl 로 하시면 됩니다.
Perl은 유니코드 5.2 까지를 완벽히 지원합니다.
Perl One Liner를 사용하면 기본적인 grep 명령
은
로 나타낼 수 있습니다.
여기서 Perl이 유니코드문자를 지원하도록 하려면 다음과 같이 하면됩니다.
(터미널 환경은 utf8로 되어있고 text가 utf8 인코딩일 때)
h.txt 파일
테스트
원래의 모양에서 추가된 옵션은 -Mutf8, -CiO 인데
-CiO 옵션은 utf8 인코딩 파일을 읽어서 Perl 내부유니코드 포멧으로 변환하여
다루고 출력시 utf8인코딩으로 출력하라는 의미이며 ( 참고: http://perldoc.perl.org/perlrun.html )
-Mutf8 는 use utf8와 같은 의미로 코드에 비ASCII문자열이 오면 Perl내부유니코드로
변환하여 다루라는 뜻입니다.
따라서 정규식에 쓰인 한글이 Perl 내부유니코드화 되어 grep과 달리 정확하게 처리되며
위의 패턴으로 Perl One Liner를 사용하면 정규식에서 한글뿐만 아니라 모든 유니코드영역의 문자를
정규표현식에 사용할 수 있습니다.
댓글 달기