mordor.sh
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 5.355 ]
Homepage: https://www.instagram.com/alexabolada/
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
Personalizar teclado, alterar função de uma tecla
Verificar se um mesmo arquivo está em dois diretórios diferentes
Mostrando arquivos de forma diferente
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
pacotes 32 bit no void 64 bit (2)
iso de sistema 32 bit em atividade (5)
Lançado Ubuntu 24.04 Final (0)