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