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: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] substituir texto entre tags
Date: Fri, 21 Oct 2005 15:29:44 -0200

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 aí
>  > >  > >
>  > >  > >  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é +
>  > >  > >  > >
>  > >  > >  > >
>  > >  > >  > >
>  > >  > >  > >
>  > >  > >  > >
>  > >  > >  > >
>  > >  > >  > >
>  > >  > >  > >
>  > >  > >  > >
>  > >  > >  >
>  > >  > >
>  > >  >
>  > >
>  >
>  _______________________________________________________
>  > >  > >  > >  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/
>  > >  > >  > >
>  > >  > >  > >
>  > >  > >  > >
>  > >  > >  >
>  > >  > >
>  > >  >
>  > >
>  >
> ---------------------------------------------------------------------
>  > >  > >  > >  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
>  > >  > >  > >
>  > >  > >  >
>  > >  > >
>  >
>  === 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/
>
>
>
> ---------------------------------------------------------------------
>  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!.


reply via email to

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