Substituir texto com sed [RESOLVIDO]

1. Substituir texto com sed [RESOLVIDO]

Angelica Nakagawa
anakagawa

(usa Ubuntu)

Enviado em 24/10/2017 - 23:21h

Olá pessoal
Tem um arquivo de input que gostaria de alterá-lo via script. Para isso, pensei em usar o comando sed.
Eu tenho a variável $TT (essa variável já está no meu script). Ela contém a lista dos meus diretórios, como abaixo:
echo $TT
135 137 138 139 140 141

Eu gostaria de substituir o texto abaixo (que está no meu arquivo de input teste4.xml):
<Temperatures>TT</Temperatures>
para que fique assim:
<Temperatures>135, 137, 138, 139, 140, 141</Temperatures>

Pensei em usar assim (sem pensar nas vírgulas ainda):
sed 's/TT/'$TT'/g' teste4.xml > teste5.xml
Mas deu erro.

Alguma sugestão? Obrigada desde já!


  


2. Re: Substituir texto com sed

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/10/2017 - 23:36h

 sed "s/TT/'$TT'/g" teste4.xml > teste5.xml 


Muitos que vivem merecem a morte. E alguns que morrem merecem viver. 
Você pode dar-lhes a vida?
Então não seja tão ávido para julgar e condenar alguém a morte.
Pois mesmo os muitos sábios não conseguem ver os dois lados.



3. Re: Substituir texto com sed [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 24/10/2017 - 23:37h

Assim coloca as vírgulas também:
sed "s/TT/$TT/;s/ /, /g" 



4. Re: Substituir texto com sed [RESOLVIDO]

Angelica Nakagawa
anakagawa

(usa Ubuntu)

Enviado em 25/10/2017 - 00:12h

Obrigada pessoal, mas ainda não deu certo.
O problema está no fato que eu gostaria que ficasse automático. Então, a minha variável $TT é resultado do comando ls.
TT=`ls -d [0-9]*/ | sed 's/\///g'`
echo $TT
sed "s/TT/'$TT'/g" teste4.xml > teste5.xml

O erro que aparece é:
sed: -e expression #1, char 12: unterminated `s' command



5. Re: Substituir texto com sed [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 25/10/2017 - 01:27h

anakagawa escreveu:

Obrigada pessoal, mas ainda não deu certo.
O problema está no fato que eu gostaria que ficasse automático. Então, a minha variável $TT é resultado do comando ls.
TT=`ls -d [0-9]*/ | sed 's/\///g'`
echo $TT
sed "s/TT/'$TT'/g" teste4.xml > teste5.xml

O erro que aparece é:
sed: -e expression #1, char 12: unterminated `s' command


tire as aspas da variável TT
sed "s/TT/$TT/g" teste4.xml > teste5.xml 


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



6. Re: Substituir texto com sed [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 25/10/2017 - 12:22h

Testa aí:
TT=`ls -d [0-9]* | tr '\n' ' ' | sed 's/ $//'`
sed "s/TT/$TT/g" arquivo1 > arquivo2



7. Re: Substituir texto com sed [RESOLVIDO]

Angelica Nakagawa
anakagawa

(usa Ubuntu)

Enviado em 25/10/2017 - 13:24h

Ryuk escreveu:

Testa aí:
TT=`ls -d [0-9]* | tr '\n' ' ' | sed 's/ $//'`
sed "s/TT/$TT/g" arquivo1 > arquivo2


Valeu, Ryuk. Funcionou!
Obrigada a todos



  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts