2017-01-22 5 views
0

명령 줄에서 기본 텍스트 분석을 시도하고 있지만 명령을 실행할 때마다 다음과 같은 결과가 표시됩니다. tr : Illegal byte sequence. 문제를 텍스트 내의 특수 문자 (',, ¨ 등)로 좁혔습니다. 텍스트에서 이러한 특수 문자를 제거하기 위해 할 수있는 일이 있습니까? 명령 줄을 사용할 수 있습니까? 아니면 스크립트를 실행해야합니까?텍스트 파일에서 특수 문자를 제거하는 방법이 있습니까?

+0

http://unix.stackexchange.com/questions/141420/tr-complains-of-illegal-byte-sequence를 참조하십시오. 파일의 인코딩이 잘못되었다고 생각합니다. 당신은 어떤 OS입니까? 예를 들어 http://stackoverflow.com/questions/64860/best-way-to-convert-text-files-between-character-sets를 참조하십시오. –

+0

응답 해 주셔서 감사합니다! 나는 macOS Sierra를 사용하고 있습니다. 내가 제공 한 링크를 제공 할 것입니다. –

+0

그래서 파일에서 비 ASCII를 정말로 없애고 싶다면'iconv -f utf8 -t ascii // TRANSLIT'이 당신이 찾고있는 파일 일 것입니다. 아니면 파일의 내용에 따라'utf8' 대신에 뭔가 다른 것을 사용하십시오. http://stackoverflow.com/questions/8562354/remove-unicode-characters-from-textfiles-sed-other-bash-shell-methods를 참조하십시오. –

답변

0

어떻게하면 텍스트를 처리하려고하는지 알 수 없지만 tr을 실행하려고하면 분명히 tr: Illegal byte sequence이라는 오류 메시지가 나타납니다. 이것은 입력이 유효한 UTF-8 인코딩에 해당하는 바이트 시퀀스가 ​​아닌 경우 발생합니다 (모든 바이트 시퀀스가 ​​일련의 유니 코드 문자의 UTF-8 인코딩에 해당하지는 않음).

처리하려는 파일의 종류를 알 수는 없지만 MacOS X 환경에서는 file -I 명령을 사용하면 실제로 인코딩을 알 수 있습니다.

파일을 레코딩하는 경우, iconv은 유용한 프로그램입니다. iconv -f ... -t utf8 (원래 파일의 인코딩은 ...이고 사용 가능한 인코딩 목록은 iconv -l)을 사용하여 UTF-8 인코딩으로 다시 코딩 할 수 있습니다.

또는 정말로 (질문 제목에 명시된대로) 파일의 특수 문자을 제거하려면 iconv -f ... -t ascii//TRANSLIT을 사용할 수 있습니다. 이 마지막 경우에서 "특수 문자"는 일반 ASCII 문자로 근사됩니다.