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

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

Re: [shell-script] Sed não entendo


From: Lawrence Waclawiak
Subject: Re: [shell-script] Sed não entendo
Date: Thu, 22 Apr 2010 17:30:22 -0300
User-agent: Thunderbird 2.0.0.23 (X11/20090817)

A solução apresentada pelo sergio é mais simples que a minha e funciona perfeitamente, só colocaria mais algumas coisinhas para evitar probelmas, veja:
sed -i "/^suffix.*\".*\"$/ s/\".*\"$/\"dc= $var1,dc= $var2\"/" arquivo

Assim com ^suffix.*\".*\"$ já casamos a linha completa e não qualquer linha que tenha suffix, depois substituimos os valoes entre ""
Acho que essa é foi a melhor solução

Lawrence Waclawiak escreveu:
Solução fresquinha vinda das aulas do Júlio.
Para isso lembrei que existe o esquema de retrovisor para expressões regulares, veja:

lbw@lbw-laptop:~$ cat bla

wqddm
dwddwww
wdwd3e3e3323
suffix "dc=my-domain, dc=com"
drop "dc=my-domain, dc=com"
545454f
hyhjuyhh

lbw@lbw-laptop:~$ cat bla |sed -r 's/^(suffix.*)".*"$/\1"qualquecoisa,qualquercoisa"/'
wqddm
dwddwww
wdwd3e3e3323
suffix "qualquecoisa,qualquercoisa"
drop "dc=my-domain, dc=com"
545454f
hyhjuyhh

Utilizei o sed com -r para habilitar o regex estendido, tudo que estiver entre os () poderá ser referenciado posteriormente como \1, dessa forma você pode recurerar esse valor para reescrever a linha. Note que nesse arquivo que criei existem 2 linhas que possuem "" mas só é substituída a que começa com suffix, dessa forma vc tbm não precisa se preocupar se o que tem depois do suffix são espaços ou tbs.

Espero que ajude.

Abraço

Marcio Gil escreveu:
-----Original Message-----
From: Luiz Guilherme Nunes Fernandes

Subject: Sed não entendo
Prezados,

tudo jóia?

me deparei com o seguinte problema que não consigo resolver.

Dentro dum arquivo se encontra esta linha.

suffix "dc=dc=my-domain,dc=com"

Estou querendo usar o sed para trocar os valores dentro das
aspas, mas não
está funcionado.

sed 's#^suffix* *"dc=my-domain,dc=com"#suffix
"dc=xxx,dc=xxx,dc=xxx"#g'

E não entendo pq não está indo.
O resto do arquivo tudo que não tem aspas foi alterado.

Alguém poderia me dar a solução e me explicar por que neste
caso ele não altero?

Já tive alguns problemas por causa de espaços serem na verdade
tabulações. Além disso na sua expressão regular falta um "dc=",
tenta assim:

sed 's#^suffix[[:space:]]*"dc=dc=my-domain,dc=com"#suffix
"dc=xxx,dc=xxx,dc=xxx"#g'






------------------------------------

---------------------------------------------------------------------
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
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos







reply via email to

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