mordor.sh
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 5.676 ]
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
Script para backup de usuários
Script para Inicialização / Finalização do MRTG no boot
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
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Servidor de DNS BIND Ubuntu server (1)
Podem me chamar de 1mbecil :) (4)
Tem como instalar o Untapped no Linux? (2)
diferença entre o Tor baixado pelo Gerenciador de Aplicativos e o Tor ... (3)









