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

[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]



reply via email to

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