GNU sed (Windows 용)가 유니 코드를 처리 할 수 ​​있습니까? 그렇다면 코드 페이지 / 로캘 문제입니까, 아니면 스위치입니까?


10

저는 몇 년 동안 GNU SED를 사용하고 있습니다. 때로는 조금 나아지지만 1 바이트 문자 세트의 경우 잘 작동합니다!
나는 이제 유니 코드를 인식하는 GNU SED에 대한 언급을 보았지만, 가장 많이 본 것은 "이진"모드입니다. 이진은 유니 코드가 아닙니다.
GSED는 특히 \ r \ n (Windows)을 포함하여 CodePoint 해상도로 유니 코드 텍스트 파일을 처리 할 수 ​​있습니까? 가능하다면 UTF-8, UTF-16 또는 무엇을 기대합니까? SED는 어떻게 인코딩을 감지합니까?


1
일반적으로 유니 코드는 \ uXXXX 옵션으로 지정됩니다. 이 japanease 녀석의 컴파일 sky.geocities.jp/hp_gabo200x/room_tool.html
Mikhail

답변:


1

나는 sed에 대해 많은 것을 알지 못하지만 어려운 인터넷 검색 후 LANG 환경 변수를 통해 다양한 코드 페이지를 지원하는 것으로 보입니다. 나는 LANG가 없을 때 UTF-8이 기본값이라고 생각합니다. 그래도 Windows 포트가 어떻게 설정되어 있는지 모르겠습니다. sed가 입력 스트림에서 감지 처리를 전혀 수행하지 않는다는 강한 의혹이 있습니다.

출처 : /programming/67410/why-does-sed-fail-with-international-characters-and-how-to-fix http://omgili.com/mailinglist/cygwin/cygwin/com /20100520123926GA1432onderneming10xs4allnl.html

여기에 언급 한 바와 같이 당신은 또한 이스케이프 문자를 시도 할 수 : http://forums.whirlpool.net.au/forum-replies-archive.cfm/841095.html 즉, 비록 매우 성가신 것 같다.


@Mathew : 감사합니다. 이 문제는 SED.exe 자체와 관련이 없지만 Windows cmd.exe 콘솔에서 코드 페이지를 잘 처리 하지 못하는 방식으로 보일 수 있습니다 . 어쩌면 PowerShell에서 작동 할 수도 있지만 거기에 가야한다면 대신 Python에 중점을 둘 것입니다. 내가 볼 수있는 한 Windows 자체의 자부심과 기쁨 인 UTF-16 (코드 페이지 1200, msdn.microsoft.com/en-us/library/dd317756%28VS.85%29.aspx )은 관리되는 응용 프로그램 에서만 사용할 수 있습니다. , 그 의미가 무엇이든간에 반드시 콘솔에서 작동하지 않습니다. UTF-8로 다시 변환 하시겠습니까? 절대 안돼! 여기에 파이썬이 있습니다. (또는 'Nix and Bash)
Peter.O

나에게 좋은 소리. cmd.exe가 문제를 일으키는 방법과 Python이 문제를 해결하는 방법 (Python의 잘 알려진 마법 능력 ( xkcd.com/353 ) 외에 )과 혼동 되지만, vagaries를 이해하는 척하지는 않습니다. cmd.exe의 당신에게 행운을 빕니다!
바네사 핍스

@ 프레드 : 읽기 : .NET.
Hello71

2
나는 ... 그것은 실크 같이 부드러운 .. 내가 완전히 약 6 개월 전 MS 하락, 지금은 우분투를 사용했습니다 ... 문제를 해결했습니다 (나는 ... 다시 찾는 게 아니에요
Peter.O
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.