mordor.sh
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 5.646 ]
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
Compartilhando conexão DHCP Velox - Linux Ubuntu
Limpar o histórico dos documentos recentes do Ubuntu 11.10
Shell Script simples usando case
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









