O OS X possui seu próprio formato de linha?

7

Obviamente, existem pelo menos dois tipos de novas linhas: DOS e Unix. Mas o OS X tem seu próprio formato de texto simples?

Eu abri um arquivo de texto em nano e fiquei surpreso ao ver: [ Read 26793 lines (Converted from Mac format) ]

O que é o formato Mac, como é diferente de um arquivo escrito com uma ferramenta Unix como nano, e por que ele precisa ser convertido de para ser lido com nano em um Mac?

    
por Tom Marthenal 08.11.2011 / 04:48

2 respostas

14

Deve-se notar que o Mac OS X usa \n a.k.um avanço de linha ( 0x0A ) agora, assim como todos os outros sistemas * nix. Apenas as versões 9 e posteriores do Mac OS usavam \r (CR).

Referência: Wikipedia em novas linhas .

    
por 08.11.2011 / 06:57
4

O jw013 aponta em outra resposta que o Mac agora mudou para o padrão * nix \n .

Anteriormente, o Mac OS era \r (retorno de carro, 13 / 0x0D); O Windows é \r\n e * nix são \n (alimentação de linha, 10 / 0x0A). Não tenho certeza sobre os sistemas mais obscuros, mas acho que quase todo o resto também é \n . A diferença vem dos dias do teletipo quando \n se moveria para a próxima linha, e \r moveria a cabeça de volta para o início (lado esquerdo) da página, bastante semelhante ao que se tinha que fazer (manualmente ) com uma máquina de escrever no passado. Observe que em um terminal no Linux, \r ainda move o cursor para o início da linha atual, em vez de ir para a próxima linha, consistente com seu uso de teletipo. Eu vi histórias mais detalhadas sobre por que cada sistema escolheu seus próprios tipos de linha, então tenho certeza que você pode pesquisar por mais detalhes.

De qualquer forma, em questões práticas, a maioria dos editores (exceto o bloco de notas) pode lidar com qualquer um dos três tipos, e existem maneiras abundantes de converter entre eles. Algumas ferramentas de cópia remota (ftp, por exemplo, e provavelmente outros programas similares) convertem-se transparentemente para os tipos de linha corretos para o destino ao transportar arquivos no modo de texto. E eu li hoje em uma postagem SO 1 que o gcc realmente converte \n para a linha apropriada que termina no sistema em que está compilando.

¹ Citação:

The varying line-ending characters don't matter, assuming the file is open in text mode, which is what you get unless you ask for binary. The compiled program will write out the correct thing for the system compiled for.

    
por 08.11.2011 / 05:09