mordor.sh
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 5.629 ]
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
Imprimindo textos com o comando "echo"
Baixa e instala o Real Media para Linux
Instalação Zabbix-agent CentOS7
Dexter versão 2.0 - Instalador de pacotes para Sabayon
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
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Problema em SSD ao dar boot LinuxMint LMDE FAYE 64 (0)
Baixar jogos Independentes para Ubuntu [RESOLVIDO] (4)
PIP3 - erro ao instalar módulo do mariadb para o Python (1)
Linux x Plataformas de Trading - um problema (in-)solúvel? (4)