removido
(usa Nenhuma)
Enviado em 15/09/2012 - 22:02h
Amigo,
Cara isso é dificil, mas consegui....
#script pesquisa.sh para localizar arquivos que NÃO possuem
#um determinado criterio de busca.
#Script pesquisa.sh feito por Kyetoy do VOL.
#!/bin/bash
DIRETORIO=$1;
CRITERIO=$2;
find $DIRETORIO -type f \( -iname "*.txt" \) > /tmp/Arquivos.txt
while read Linha ; do
NOME=`echo $Linha`;
egrep -v $CRITERIO $NOME 1> /dev/null;
[ $? == 0 ] && echo "Arquivo $NOME não possui a palavra $CRITERIO";
done < /tmp/Arquivos.txt
# FIM DO SCRIPT
Foi testado no Debian 6.0.5 com BASH.
Como funciona? Fiz o script mais generico para funcionar em diferentes diretorios com diferentes criterios de busca. Entretanto limitei sobre os arquivos *.txt para não dar pau em outras coisas sem querer.
Depois de dar permissões execute passando o parametro DIRETORIO e CRITERIO.
#chmod 0744 pesquisa.sh
#./pesquisa.sh /root concluido
(aqui estou passando o local dos arquivos /root e a palavra chave para pesquisa CONCLUIDO.
Como funciona a logica:
Os dois argumentos passados vão para dentro de DIRETORIO e CRITERIO.
Um find gera um Arquivo.txt em /tmp com os nomes dos arquivos que tem extensão .TXT
Depois eu leio esse Arquivo.txt linha por linha e coloco cada linha dentro de NOME.
Agora faço o teste de egrep -v (logica invertida) para ser se não tem o criterio, jogando a saida do egrep em /dev/null para não sujar a console...
Depois eu testo a variavel $? que terá valor igual a zero se o criterio nao foi encontrado no arquivo pesquisado. Uso um && logico para executar somente se a primeira opção for verdadeira.
Imprimo o NOME e o CRITERIO na console somente para os que NÃO tem o criterio.
ISSO AÍ... espero que entenda tudo que fiz...
Manda o cheque do prêmio para mim.... rs.... aceito ticket refeição..
Kyetoy