Gedit exibe texto, mas gato conta uma história diferente

4

Estou tentando classificar um dicionário do Moby de Grady Ward e encontrei um pequeno problema . Quando eu abri-lo no gedit, eu recebo:

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

e assim por diante.

No entanto, %código% conta uma história diferente. Eu acabo recebendo uma confusão de personagens começando com cat mobyposi.i | less e terminando em <D7> em cada linha e é impossível ler.

^M é definitivamente um linebreak e o dos2unix não corrige isso. No que diz respeito ao ^M , estou completamente perdido. Eu preciso ser capaz de remover ambos para torná-lo legível, mas tenho certeza que a máquina pode passar por isso muito bem. : /

Estou executando o Ubuntu 15.04.

    
por Gavyn Rogers 14.06.2015 / 21:46

1 resposta

3

O arquivo mobyposi.i usa terminações de linha Mac antigas, ou seja, caracteres CR. Por quê? Eu não sei. Este arquivo é de 1993, talvez o autor quisesse ser Mac-friendly e pensava que os usuários do Unix e Windows poderiam se defender sozinhos. Ou talvez o autor tenha cometido um erro, o arquivo readme declara que “o arquivo de vocabulário [tem] delimitadores CRLF (ASCII 13/10)”, enquanto os delimitadores são, na verdade, apenas CR.

As palavras e a parte da fala são separadas pelo byte D7₁₆ = 215₁₀ = 327₈. O caractere × que o Gedit mostra é o glifo correspondente a este byte na codificação Latin-1.

Para converter os terminais de linha em finais de linha (LF) do Unix e o separador de palavras / partes em : , execute

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

dos2unix não fez nada porque a entrada não tinha finais de linha do DOS. O Gedit detectou automaticamente um arquivo em uma codificação externa (detectou as novas linhas, detectou uma codificação de um único byte e escolheu o Latin-1 entre as muitas possibilidades porque foi configurado dessa forma). Menos não detecta automaticamente codificações estrangeiras, ele mostra como é o arquivo quando interpretado em sua localidade.

    
por 14.06.2015 / 22:57