shell-script-pt
[Top][All Lists]
Advanced

[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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]