17 de mar de 2011

Dica - Como utilizar o find e o grep em pastas com espaços.

Estive tentando achar um arquivo dentro do servidor SAMBA, que tem extensão .doc e em seu conteúdo uma determinada palavra.
Pesquisei na web e achei o seguinte comando, utilizando o grep e o find:

# find /home/user/pastax/pastay/docs\ anterirores\ a\ 2009/* -name "*.doc" | xargs grep -i 'determinada palavra'

Mas acontece que em uma subpasta foi utilizado espaços em seu nome, o que retornava o seguinte erro

# grep: Contas/677674.doc: No such file or directory

Ou seja, o xargs estava passando para o grep, arquivos e pastas com espaços, de forma fragmentada, e para resolver o problema, pesquisei e o comando inicial ficou assim:

 # find /home/user/pastax/pastay/docs\ anterirores\ a\ 2009/* -name "*.doc" | xargs -d '\n' grep -i 'determinada palavra' 

Pronto, pesquisa feita.

Nenhum comentário:

Postar um comentário

Parafraseando do ditado "quem conta um conto aumenta um ponto", aqui "quem comenta um post, aumenta um ponto"!