bruno_r_santana
(usa Ubuntu)
Enviado em 23/10/2011 - 02:25h
Obrigado novamente pessoal,
cat arquivo | grep string
Assim teria que filtrar manualmente arquivo por arquivo, então não rola
Vou testar rodar na segunda esse abaixo que sugeriu no servidor para ver se vai:
for arquivo in *; do cat $arquivo | grep linux; done
Mas acho q não vai rolar pq tentei igual esse abaixo e o processo também foi morto:
for FILE in `ls`; do grep -ri 'string' $FILE; done
Esse aqui não rolou:
cat * | grep string
retorna:
Arquivo binário (entrada padrão) coincide com o padrão
Nessa página
http://www.unix.com/unix-dummies-questions-answers/99882-execute-find-exec-grep-desending-order.html achei uma solução interessante que usa menos memória e adaptei ela, e funcionou. Ficou assim:
find public_html | while read file ; do grep -ri 186.202.13.6 $file; done | tee mylog.txt
O único problema dessa solução é que quando encontra um nome de pasta com espaço no meio fica dando erro para cada arquivo dentro da pasta, exemplo daria o erro abaixo para cada arquivo da pasta Área de Trabalho:
grep: Área: Arquivo ou diretório não encontrado
grep: de: Arquivo ou diretório não encontrado
grep: Trabalho/Íris/DSC02824.JPG: Arquivo ou diretório não encontrado
Apesar de ter conseguido resolver o problema vou manter esse post aberto porque fiquei curioso para saber se é possível usar -exec + grep. Também queria entender porque o servidor mata o processo e aparece Killed, se é padrão do Linux ou se é algo que foi configurado pelo administrador.
valeu!