mordor.sh
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 5.428 ]
Homepage: https://mestrefabio.com
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
Convertendo man pages em PDFs (Versão CShell)
Limpar o histórico dos documentos recentes do Ubuntu 11.10
rc.squid start|stop|restart Servidor Proxy
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta