mordor.sh
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 5.518 ]
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
Limpando o cache da memória RAM de forma efetiva
Montar Imagem ISO no Nautilus-Script ou Nautilus-Actions
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
tux-gpt - Assistente de IA para o Terminal
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
O Que Fazer Após Instalar Ubuntu 25.04
Os empreguim de meu Deus estão cada vez mais tecnológicos (8)
Dock do debian está muito pequena (2)