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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] substituir texto entre tags


From: murgent_shell
Subject: Re: [shell-script] substituir texto entre tags
Date: Thu, 27 Oct 2005 13:46:49 +0000 (GMT)

qdo coloco o echo na frente (echo  sed
's/<fs:JobStarted>.*/'$x'/g' teste.dat > x.dat) o que
vejo eh tudo ocorrendo de forma correta, ou seja, x eh
devidamente "resolvido"

tenho estado a dias em cima deste script e nada de
resolver isso.

--- Tiago Barcellos Peczenyj
<address@hidden> escreveu:

> TA
> 
> faz o seguinte: coloca um echo na frente do sed.
> 
> de repente $x tem algo que o sed não gosta dentro
> dele...
> 
> 
> Em 21/10/05,
> murgent_shell<address@hidden> escreveu:
> >
> >  --- Tiago Barcellos Peczenyj
> >  <address@hidden> escreveu:
> >
> >  > Tche,
> >  >
> >  > 1) qual a mensagem de erro ?
> >
> >  sed: -e expressão #1, caractere 23: unterminated
> `s'
> >  command
> >
> >  > 2) experimenta trocar assim: sed
> >  > 's/<fs:JobStarted>.*/'"${x}"'/g'
> >  > teste.dat > x.dat
> >
> >  mesma coisa
> >
> >  > 3) vc tem controle sobre o arq.dat, teste.dat e
> o
> >  > x.dat ? tipo se vc
> >  > pegar o resultado de $x que vc escreve na tela,
> >  > jogar no linha do sed
> >  > acima, vc tem o resultado que vc quer ? está
> tudo
> >  > como vc imagina ?
> >
> >  sim tudo certo, o que percebo eh que se x receber
> o
> >  valor de um comando ou expressão dá pau!!!
> >
> >  Tô tentando de tudo, mas não funciona.
> >
> >
> >  > Em 20/10/05,
> >  > murgent_shell<address@hidden>
> escreveu:
> >  > >
> >  > >  Tiago muito obrigado pela força, mas eu sou
> um
> >  > mortal
> >  > >  medíocre mesmo, não estou entendo...
> >  > >
> >  > >  tenho o seguinte script:
> >  > >
> >  > >  #!/bin/bash
> >  > >
> >  > >  logFile="arq.dat"
> >  > >
> >  > >  func()
> >  > >  {
> >  > >  x=$(echo $LINHA | sed -u -e s/[][\']//g -e
> >  > >  s/:[0-9][0-9][0-9]// | awk -F" " '{print $1
> $2 $6
> >  > >  $12}')
> >  > >
> >  > >  sed 's/<fs:JobStarted>.*/'$x'/g' teste.dat >
> >  > x.dat
> >  > >  }
> >  > >
> >  > >  func1()
> >  > >  {
> >  > >  echo $LINHA
> >  > >  }
> >  > >
> >  > >  tail -f $logFile --lines=1 | while read
> LINHA; do
> >  > >
> >  > >  case $LINHA in
> >  > >  *of:105*) func $LINHA
> >  > >  ;;
> >  > >  *of:107*) func1 $LINHA
> >  > >  ;;
> >  > >  esac;
> >  > >
> >  > >  done
> >  > >
> >  > >
> >  > >  Se eu imprimir o $x (dentro da função) vejo
> o
> >  > conteúdo
> >  > >  correto, se eu coloco como esta no script
> >  > >
> >  > >  sed 's/<fs:JobStarted>.*/'$x'/g' teste.dat >
> >  > x.dat
> >  > >
> >  > >  a msg de erro permanece, jpa fiz esse script
> de
> >  > "mil
> >  > >  formas" diferentes, mas não consigo
> entender.
> >  > >
> >  > >  se $x fosse resultado de uma atribuição
> simples
> >  > como
> >  > >  a=7 funciona tb.
> >  > >
> >  > >  ????????????????????????????????????????
> >  > >
> >  > >
> >  > >
> >  > >  --- Tiago Barcellos Peczenyj
> >  > >  <address@hidden> escreveu:
> >  > >
> >  > >  > Tenta assim:
> >  > >  >
> >  > >  > sed 's/data/'"`date`"'/g' arquivo
> >  > >  >
> >  > >  > a sequencia é aspas simples, aspas duplas,
> >  > crase,
> >  > >  > comando, crase,
> >  > >  > aspas duplas, aspas simples
> >  > >  >
> >  > >  > ou
> >  > >  >
> >  > >  > sed 's/data/'"$(date)"'/g' arquivo
> >  > >  >
> >  > >  > substitui a crase por $(comando)
> >  > >  >
> >  > >  > Em 19/10/05,
> >  > >  > murgent_shell<address@hidden>
> >  > escreveu:
> >  > >  > >
> >  > >  > >  tenho um script que estou fazendo isso
>
> >  > >  > >
> >  > >  > >  x=`date`
> >  > >  > >  sed "s/coisa/$x/" arq
> >  > >  > >
> >  > >  > >  TUDO FUNCIONA, mas em outro script não
> >  > funciona e
> >  > >  > >  retorna a seguinte msg :
> >  > >  > >
> >  > >  > >  sed: -e expressão #1, caractere n:
> unknown
> >  > option
> >  > >  > to
> >  > >  > >  `s'
> >  > >  > >
> >  > >  > >  não entendo porque.
> >  > >  > >
> >  > >  > >
> >  > >  > >  --- Tiago Barcellos Peczenyj
> >  > >  > >  <address@hidden> escreveu:
> >  > >  > >
> >  > >  > >  > Use o bom e velho sed
> >  > >  > >  >
> >  > >  > >  > sed 's/<tag1>.*</<tag1>outracoisa</g'
> algo
> >  > >  > >  >
> >  > >  > >  > onde .* representa qualquer sequencia
> de
> >  > >  > caracteres.
> >  > >  > >  >
> >  > >  > >  > Em 18/10/05,
> >  > >  > >  >
> murgent_shell<address@hidden>
> >  > >  > escreveu:
> >  > >  > >  > >  Olá pessoal
> >  > >  > >  > >
> >  > >  > >  > >  Qual a maneira correta de
> substituir um
> >  > >  > >  > determinado
> >  > >  > >  > >  conteúdo que esteja entre uma tag.
> >  > >  > >  > >
> >  > >  > >  > >  <tag1>qqcoisa</tag1>
> >  > >  > >  > >  por
> >  > >  > >  > >  <tag1>xxxx</tag1>
> >  > >  > >  > >
> >  > >  > >  > >  Importante: preciso substituir o
> que
> >  > esta
> >  > >  > entre
> >  > >  > >  > as
> >  > >  > >  > >  tags, pois o conteúdo entre tags
> eh
> >  > sempre
> >  > >  > >  > variável.
> >  > >  > >  > >
> >  > >  > >  > >  Até +
> >  > >  > >  > >
> >  > >  > >  > >
> >  > >  > >  > >
> >  > >  > >  > >
> >  > >  > >  > >
> >  > >  > >  > >
> >  > >  > >  > >
> >  > >  > >  > >
> >  > >  > >  > >
> >  > >  > >  >
> >  > >  > >
> 
=== message truncated ===



        



        
                
_______________________________________________________ 
Promoção Yahoo! Acesso Grátis: a cada hora navegada você
acumula cupons e concorre a mais de 500 prêmios! Participe!
http://yahoo.fbiz.com.br/


reply via email to

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