[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] substituicao de texto
From: |
law |
Subject: |
Re: [shell-script] substituicao de texto |
Date: |
Sun, 28 Aug 2005 03:36:56 +0000 (GMT) |
Tiago,
percebi o seguinte:
crio uma variavel:
var="`cat arquivo.txt`"
se o arquivo.txt tiver uma palavra só.. tipo TESTE, o sed abaixo funciona.. Mas
se o arquivo.txt tiver varias linhas como:
teste10
teste11
teste12
O comando nao funciona..
sed -e 's/<\/teste>/'${var}'/g' teste.txt > saida
sed -e "s/<\/teste>/${var}/g" teste.txt > saida
creio que a variavel pode ser criada assim, o echo retorna a mesma coisa:
var="`cat arquivo.txt`"
var=$(cat arquivo.txt)
alguem sabe se isso funciona? ou seja, se eu posso fazer o replace com o sed de
uma palavra como o </teste> por:
teste10
teste11
teste12
grato
law
Tiago Barcellos Peczenyj <address@hidden> escreveu:
ola
a forma como vc deve usar o sed é essa :
sed 's/procura/substitui/g'
entre aspas simples. agora tente fazer :
A=7
echo $A
7
echo '$A'
$A
isso por que tudo dentro de aspas simples eh tratado como string, não
precisa escapar. vc escapa um monte de coisa dentro do sed por que o
sed exige assim, não o bash
como escapar ? simples:
sed -e 's/<\/teste>/'${var}'/g' teste.txt > saida # Desta forma ele
vc coloca $var entre aspas simples.assim vc passa a perna no sed :)
Em 26/08/05, leobash10<address@hidden> escreveu:
> olá pessoal.. sou novato aqui e em shell.
>
> estou com o seguinte problema, basicamente é: Preciso pegar uma
> palavra de dentro de um arquivo(sempre haverá duas palavras iguais
> neste arquivo e numero de linhas variadas) e substitui-la por um
> pequeno texto que estará em uma variável.
>
> vamos lá:
>
> arquivo teste.txt com o conteudo abaixo..estou tentando trocar o
> </teste>
>
> teste1..teste1..
> teste2..teste2..
> teste3..teste3..
> teste4..teste4..
> </teste>
> teste1..teste1..
> teste2..teste2..
> teste3..teste3..
> teste4..teste4..
> </teste>
>
> arquivo.txt com:
> isto e um TESTE
> teste70..teste80..
>
> crio uma variavel:
> var="`cat arquivo.txt`"
>
> e tento usar o SED para trocar.
> sed -e 's/<\/teste>/$var/g' teste.txt > saida # Desta forma ele
> escreve $var no arquivo teste.txt como uma string.
>
> já tentei usar:
> sed -e "s/<\/teste>/$var/g" teste.txt > saida
> sed -e "s/<\/teste>/${var}/g" teste.txt > saida
>
> mas retorna erro:
> sed: -e expression #1, char 28: Unknown option to `s'
>
> o bash que uso é 2.05b.. O arquivo saida teria que ficar assim:
>
> teste1..teste1..
> teste2..teste2..
> teste3..teste3..
> teste4..teste4..
> isto e um TESTE
> teste70..teste80..
> teste1..teste1..
> teste2..teste2..
> teste3..teste3..
> teste4..teste4..
> isto e um TESTE
> teste70..teste80..
>
>
> agradeço desde já a ajuda de vcs.obrigado
>
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
>
>
>
> Yahoo! Grupos, um serviço oferecido por:
>
> ________________________________
> Links do Yahoo! Grupos
>
>
> Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/shell-script/
>
> Para sair deste grupo, envie um e-mail para:
> address@hidden
>
> O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
> Yahoo!.
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Yahoo! Grupos, um serviço oferecido por:var target="_blank";var URL = new
Array();URL[1] =
"http://br.rd.yahoo.com/SIG=12fcvtadn/M=365837.7000707.7924794.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1125115725/A=2932553/R=0/id=flashurl/SIG=10tift5qr/*http://br.movies.yahoo.com/";var
link="javascript:openWindow(1)";var flashfile =
'http://br.i1.yimg.com/br.yimg.com/i/br/ads5/cinema_n_suspense.swf?clickTAG='+link+'';var
altURL =
"http://br.rd.yahoo.com/SIG=12fcvtadn/M=365837.7000707.7924794.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1125115725/A=2932553/R=1/id=altimgurl/SIG=10tift5qr/*http://br.movies.yahoo.com/";var
altimg =
"http://br.i1.yimg.com/br.yimg.com/i/br/ads5/cinema_n_suspense.gif";var width =
468;var height=60;
---------------------------------
Links do Yahoo! Grupos
Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
Para sair deste grupo, envie um e-mail para:
address@hidden
O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
Yahoo!.
__________________________________________________
Converse com seus amigos em tempo real com o Yahoo! Messenger
http://br.download.yahoo.com/messenger/
[As partes desta mensagem que não continham texto foram removidas]