mordor.sh
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 5.689 ]
Homepage: https://fabio.automatizando.dev
Programa que procura por determinada palavra em todos os arquivos texto de determinado diretorio.
#!/bin/bash
#Mon Sep 2 22:46:04 GMT 2002
#
# mordor.sh
# Coded by Carlos Carvalho <h4sh@uol.com.br> <www.vivaolinux.com.br>
#
# Programa que procura por determinada palavra em todos os
# arquivos texto de determinado diretorio.
# Em certas ocasioes voce pode precisar saber por exemplo onde
# estao definidas algumas configuracoes de sistema como por exemplo
# o HOSTNAME, descobrindo quais arquivos contem seu hostname te ajudara
# a saber quais sao responsaveis pelas definicoes. Ou voce pode
# tambem apenas escanear por outras palavras-chave, de qualquer forma
# quem decide isso e voce.
# Mais uma vez fiz um programa apos procurar por um semelhante e nao
# obter sucesso, afinal, sao assim que eles nascem.
# Programa criado em meu Slackware 8.0
#
# Obs: Em certos diretorios onde arquivos sao nomeados com numeros
# o script pode apresentar comportamento erroneo, listando
# um ou outro arquivo mais de uma vez, deixando assim de listar outros
# arquivos, prejudicando a busca. Ainda nao tive tempo nem paciencia
# de corrigir esse bug, assim que possivel farei isso.
# Se voce quiser corrigir va em frente e me mande uma copia :]
#
# Como usar:
# ./mordor.sh -get [inicia programa]
# ./mordor.sh -see [exibe resultado]
# ./mordor.sh -del [deleta resultado]
GANDALF=/tmp/temp.txt ; GIMLI=/tmp/result.txt
SAURON=/tmp/busca.txt ; ORCS=/tmp/file
tolkien ()
{
if [ -f "$GANDALF" ]; then
rm -rf "$GANDALF"
fi
if [ -f "$ORCS" ]; then
rm -rf "$ORCS"
fi
if [ -f "$SAURON" ]; then
rm -rf "$SAURON"
fi
echo -n "Digite a palavra: "
read TEXTO
echo -n "Digite o diretorio de busca: "
read DRCT
if [ ! -d $DRCT ]; then
echo "Diretorio nao existe"
echo "Programa abortado."
exit 1
fi
touch "$GIMLI"
ls "$DRCT" |grep -n $ > "$GIMLI"
BEGIN=1
END=$(tail -1 "$GIMLI" |cut -d ":" -f1)
while [ "$BEGIN" -le "$END" ]; do
ENTRY=$(cat "$GIMLI" |grep "$BEGIN" |head -1 |cut -d ":" -f2)
file "$DRCT"/"$ENTRY" |grep text > "$ORCS"
if [ -s "$ORCS" ]; then
cat "$DRCT"/"$ENTRY" |grep "$TEXTO" > "$GANDALF"
if [ -s "$GANDALF" ]; then
echo "Encontrado \"$TEXTO\" em "$DRCT"/"$ENTRY"" >> "$SAURON"
fi
fi
BEGIN=`expr $BEGIN + 1`
done
rm -rf $GANDALF && rm -rf $GIMLI && rm -rf $ORCS
echo "Para visualizar resultado: $0 -see"
echo "Pronto!"
}
case $1 in
-get)
tolkien
;;
-see)
if [ -f "$SAURON" ] ; then
less "$SAURON"
else
echo "NAO localizado !"
echo "use: $0 -get"
fi
;;
-del)
rm -rf "$SAURON"
;;
*)
echo "usage: $0 [-get|-see|-del]"
;;
esac
#EOF
cieQemu - Interface para o qemu (Shell & Xdialog)
dinosudo – alternativa CLI para executar aplicativos gráficos como root enquanto logado como
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Como fazer a instalação do Samba
Como fazer a conversão binária e aplicar as restrições no Linux
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (19)
Formas seguras de instalar Debian Sid (13)
Malware encontrado em extensões do Firefox. (0)
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









