Procurando e editando em um comando

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UNIX GURU UNIVERSE
DICA UNIX[bb]
Dica Unix 3149 - 20 de setembro 2009
http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Procurando e editando em um comando 


Precisa procurar os arquivos no diretório local que contém uma string e depois editá-los no vi ?

Este comando aqui faz isto.

vi `grep -il "target" *.sql 2>/dev/null`

Procura todos os arquivos no diretório que contém aquela expressão regular e depois manda-os para a edição dentro do vi.

vi `find . -type f -name "*.sql" -print | (xargs grep -il "[a-z][a-z]*get" 2>/dev/null)`

Lembrando que é uma boa idéia redirecionar o stderr ( saída de erro ) no caso de haver arquivos que você não tem permissão de leitura.
Isto deve ser feito pois os erros podem ser passados para o vi como argumentos, e ele vai entender que aquilo deve ser um arquivo a ser criado ou editado.

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

Para assinar: http://www.ugu.com/sui/ugu/show?tip.subscribe
Para sair: http://www.ugu.com/sui/ugu/show?tip.unsubscribe
Para enviar uma dica: http://www.ugu.com/sui/ugu/show?tip.today
======================================
DECLARAÇÃO: TODAS AS DICAS DE UNIX SÃO PROPIEDADE DA UNIX GURU UNIVERSE E NÃO SÃO PARA SER VENDIDAS, IMPRESSAS OU USADAS SEM O CONSENTIMENTO POR ESCRITO DA UNIX GURU UNIVERSE. TODAS AS DICAS SÃO "USADAS POR SEU PROPRIO RISCO". UGU ADVERTE PARA TESTAR TODAS AS DICAS EM UM AMBIENTE QUE NÃO ESTEJA EM PRODUÇÃO. Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2008
======================================