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 16:58:28 -0300
User-agent: Thunderbird 2.0.0.23 (X11/20090817)

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'






reply via email to

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