Gedit는 텍스트를 표시하지만 고양이는 다른 이야기를 합니다.

Gedit는 텍스트를 표시하지만 고양이는 다른 이야기를 합니다.

나는 사전을 정리하려고 노력 중이야그래디 워드의 '모비'그리고 몇 가지 문제에 직면했습니다. gedit에서 열면 다음과 같은 결과가 나타납니다.

abaca×N
abaciscus×N
abacist×N
aback×v
abacli×p
Abaco×N
abactinal×A
abaculus×N
abacus×N
abac×N
Abadan×N
Abaddon×N
Abad×N
abaft×vP
Abagael×N
Abagail×N

등.

그러나 cat mobyposi.i | less 다른 이야기가 전해집니다. 각 줄 <D7>의 시작과 끝 부분에 문자가 뒤죽박죽 되어 ^M읽을 수 없게 됩니다.

^M확실히 개행 문자입니다. dos2unix는 이를 수정하지 않습니다. 지금은 <D7>완전히 길을 잃었습니다. 사람이 읽을 수 있도록 하려면 이 두 가지를 모두 제거할 수 있어야 하지만 기계는 이를 잘 처리할 수 있다고 확신합니다. :/

우분투 15.04를 실행 중입니다.

답변1

파일 mobyposi.i은 이전 스타일의 Mac 줄 끝인 CR 문자를 사용합니다. 왜? 나는 모른다. 이 파일은 1993년의 파일입니다. 아마도 작성자는 Mac 친화적이기를 원했고 Unix와 Windows 사용자가 스스로 알아낼 수 있을 것이라고 생각했을 것입니다. 또는 작성자가 실수를 하여 문서에 readme"어휘 파일에 CRLF(ASCII 13/10) 구분 기호가 있음"이라고 나와 있는데 구분 기호가 실제로는 CR일 수도 있습니다.

단어와 품사는 바이트 D7₁₆ = 215₁₀ = 327₈로 구분됩니다. Gedit에 표시되는 문자는 ×Latin-1 인코딩의 바이트에 해당하는 문자입니다.

줄 끝을 Unix 줄 끝(LF)으로 변환하고 단어/부분 구분 기호 :

LC_CTYPE=C tr '\r\327' '\n:' <mobyposi.i >mobyposi.txt

dos2unix입력에 DOS 줄 끝이 없기 때문에 아무 작업도 수행되지 않습니다. Gedit는 외부 인코딩의 파일을 자동으로 감지합니다(개행 문자 감지, 단일 바이트 인코딩 감지, 그렇게 구성되었기 때문에 많은 가능성 중에서 Latin-1 선택). Less는 외부 인코딩을 자동으로 감지하지 않으며 해당 로케일에서 해석될 때 파일이 어떻게 보이는지 보여줍니다.

관련 정보