Localizar arquivos

1. Localizar arquivos

Silvio Rodrigues
justit1976

(usa Outra)

Enviado em 14/09/2012 - 14:37h



Amigos boa tarde!!!

Alguem poderia me ajudar a montar um programinha que localizasse num diretorio somente os aquivos que por exemplo não tivessem a palavra concluido.

Por exemplo:
no dir /home/user/
eu tenho 3 arquivos:
arquivo1
arquivo2
arquivo3

No caso os arquivos 1 e 2 tem a palavra concluido, assim o resulda deve ser o arquivo3



Grato pela ajuda!!!




  


2. Uma resposta.

Perfil removido
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











Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts