[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re:[shell-script] trocar o tr por sed
From: |
MrBiTs |
Subject: |
Re:[shell-script] trocar o tr por sed |
Date: |
Sat, 2 Jul 2005 09:54:13 -0300 |
> quero fazer algo como
>
> tr -d "\n"
>
> com o sed, tentei tipo
>
> sed 's/\n//g'
>
> e nao funcionou. alguem pode ajudar?
Num caso desses, eu prefiro usar o caracter $ para representar o final da
linha. Então, tendo o arquivo:
cat teste.txt
um
dois
tres
quatro
e, para ver os caracteres de final de linha:
cat -vet teste.txt
um$
dois$
tres$
quatro$
e fazendo
sed 's/$//g' teste.txt
um
dois
tres
quatro
temos um resultado diferente de
tr -d "\n" < teste.txt
umdoistresquatro
mas se fizermos
sed 's/$/./g' teste.txt
um.
dois.
tres.
quatro.
Concluímos que o sed efetivamente trocou o caracter de final de linha ($) por
um ponto MAS inseriu outro caracter de final de linha.
Existe aí o estudo de merge de duas linhas em sed, com um comando assim:
sed '$!N;s/\n/ /g' teste.txt
um dois
tres quatro
Você encontra informações detalhadas em
http://www.grymoire.com/Unix/Sed.html#uh-51
Se o seu objetivo é simplesmente remover os caracteres de mudança de linha e
até inserir um espaço entre as linhas, então fique com o tr -d "\n" ou com o
tr "\n" " ". Dá menos trabalho.
Se o seu objetivo é aprender sed, então você tem um ótimo exercício aí para
depois mostrar para o pessoal.
[As partes desta mensagem que não continham texto foram removidas]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re:[shell-script] trocar o tr por sed,
MrBiTs <=