[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Problema com leitura de arquivo texto
From: |
Ronaldo Ferreira de Lima |
Subject: |
Re: [shell-script] Problema com leitura de arquivo texto |
Date: |
Thu, 19 Feb 2015 20:55:00 -0200 |
User-agent: |
mutt-ng/devel-r804 (Linux) |
On Thu, Feb 19, 2015 at 01:01:34PM -0800, address@hidden [shell-script] wrote:
> Pessoal , muito obrigado pela atenção.
> na verdade isso ocorreu com um unico arquivo.
> fiz a analise e percebi que o arquivo nao tinha um enter no final
> dei um cat e a informação apareceu na mesma linha do prompt ex:
> arquivo teste com conteudo palavra teste
> [ambiente@servidor]$teste cat teste
> nao sei se é a melhor forma mas resolvi assim :
> echo "" >> teste
> ai ele ficou normal
> [ambiente@servidor]$ cat teste
> teste
O efeito negativo é que quanto o arquivo já possuir o "\n", passará a
ter uma linha a mais. Seria melhor você verificar o processo que gera os
conteúdos porque uma vez que são concatenados algumas informações podem
ficar unidas além do problema que já relatou.
O conceito de "Linha" é justamente o uma sequência de zero ou mais
caracteres terminada com um "\n". Por exemplo:
$ echo -e '\n\n\n' | wc -l
4
Caso não seja possível corrigir o processo, uma das possível soluções é
pedir socorro ao grep e perguntar por inícios de linha já que o final
não é garantido:
$ grep ^ arquivo.txt > arquivo_corrigido.txt
Outra opção é usar o ed porque ele não gosta de arquivos sem o "\n"
final e o adiciona sem nem pedirmos:
$ ed -s text.txt <<<$'wq\n'
Se ainda assim preferir testar o último caractere, poderia fazer algo
como:
$ last_byte="$(tail -c1 arquivo.txt | cat -A)"
$ [[ "$(tail -c1 arquivo.txt | cat -A)" == '$' ]] || echo >> arquivo.txt
Faça testes com arquivos vazios e sem o último "\n" para ter verificar
se estas sugestões realmente lhe atendem.
[]'s
--
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------
http://tecnoveneno.blogspot.com