mordor.sh
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 5.773 ]
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
Trocar senha de usuário via SSH
Atualização automática Debian / Ubuntu
Montar Imagem ISO no Nautilus-Script ou Nautilus-Actions
buscaTexto.sh - busca um determinado conteudo em todos os arquivos
Porque Gentoo semi-binário atualmente (desabafo)
A combinação de WMs com compositores feitos por fora
Audacious, VLC e QMMP - que saudades do XMMS
SUNO OpenSource: Crie um servidor de gerador de música com IA
Como configurar cores no prompt do Bash para usuário e root no Arch Linux
Alguns aplificativos em Flatpak não rodam no Debian (0)
Cursor do mouse parou [RESOLVIDO] (9)









