[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
- sed com regex,
Cristiano Ferrari <=