
Essa questãoeessa questãoressalte que geralmente o padrão é finalizar arquivos de texto com caracteres de nova linha para atender ao padrão POSIX, e isso é algo esperado com ferramentas GNU e outras ferramentas compatíveis com POSIX.
No entanto, como desenvolvedor C#, sei que as ferramentas que funcionam com csproj
arquivos geralmente não incluem um caractere de terminação de nova linha. Também vi ferramentas que removem a nova linha final de arquivos json
e xml
. Acho que faz sentido evitar incluir uma nova linha no final dos arquivos de texto se as ferramentas comuns que funcionam com os arquivos acabarem removendo-os novamente.
Então, quais são alguns tipos de arquivos de texto que não devem terminar com caracteres de nova linha devido às ferramentas?
Responder1
Embora não seja exatamente um arquivo de texto, um link simbólico é efetivamente um pequeno arquivo contendo um pedaço de texto (geralmente cabendo no próprio inode, portanto, nenhum bloco de dados precisa ser alocado ao arquivo).
Um link simbólico pode terminar com uma nova linha, mas nas circunstâncias mais comuns não deveria.
Outro tipo de arquivo que não deve (bem, não pode) terminar com uma nova linha é o arquivo vazio.
No UNIX, um arquivo de texto está vazio ou contém uma ou mais linhas possivelmente vazias, cada uma delas terminada por uma nova linha. Se a última linha não terminar com uma nova linha, o arquivo não é um arquivo de texto adequado.
O arquivo vazio não contém nenhum byte; no momento em que você adiciona uma nova linha, você altera seu "tipo" de vazio para não vazio.
Responder2
um arquivo de texto usado como entrada para termos de pesquisa processados por grep -f
não deve terminar com nova linha(** no editor de texto)caso contrário, isso combinaria com tudo
você pode tentar por si mesmo neste exemplo
grep não encontrando todas as instâncias do gene
Editar:observe que a pergunta é sobre coletar exemplos onde"os arquivos de texto não devem terminar com caracteres de nova linha devido às ferramentas."Embora a minha primeira afirmação não se aplique em geral, é um exemplo perfeito de tal"tipo de arquivo de texto"(arquivo criado pelo editor de texto) e, portanto, válido no contexto da questão, porque é isso que todos experimentam ao usar um editor de texto.
Isso não significa uma declaração ampla sobre \n
o caractere de nova linha no nível do sistema de arquivos, mas como um exemplo para casos extremos de umusuário normalperspectiva
obrigado @Kusalananda @ilkkachu por esclarecer na realidade que são dois \n\n
caracteres de nova linha (embora um seja adicionado silenciosamente pelo editor de texto e, portanto, invisível)