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

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

sed com regex


From: Cristiano Ferrari
Subject: sed com regex
Date: Fri, 07 Nov 2008 12:56:57 -0000
User-agent: eGroups-EW/0.82

Ilustre, bom dia.

Tenho um diretório com "trocentos" scripts SQL. Em alguns deles, que
não sei quais são, há o texto "current_date".

Preciso criar um script que processe este diretório e troque todos os
"currente_date" por "current_date-2".

Isso, em tese é facil:

# for *sql in FILE ; do sed 's/current_date/current_date-2/g' $FILE >
"novo-"$FILE ; done

Até aí tudo tranquilo.

O problema é que nestes arquivos tem algumas declações
'current_date+1' que eu não posso mudar e seu eu usar o comando
anterior, irão ficar 'current_date-2+1', que é errado.

Pensei então em usar a lista negada assim:

sed 's/current_date[^+]/current_date-2/g'

Assim, não caso com o current_date+1, mas caso com "current_date," ou
"current_date)", removendo a vírgula ou o parênteses que fazem parte
da estrutura da query.

Sei que a solução é simples, mas não estou conseguindo "sair do quadrado".

Será que alguém poderia me dar uma idéia de como eu poderia trocar
todos os current_date, exceto aqueles sucedidos por um caracter de '+'?

Att.


Cristiano



reply via email to

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