Procurando um padrão num arquivo
Publicado por Sandro Marcell 02/08/2007
[ Hits: 5.271 ]
Homepage: http://sanmarcell.wordpress.com
Simples script que procura a ocorrência de determinado padrão num arquivo.
Ele retorna o número total de linhas do arquivo, a quantidade de ocorrências do padrão e ainda mostra em quais linhas o padrão ocorre.
#!/bin/sh # # Descobrindo posição dum padrão num arquivo. # # Sandro Marcell (sandro_marcell@yahoo.com.br) # # Uso: nome_script [padrão] arquivo # Onde: # padrão = a palavra que se procura. # arquivo = onde procurar o padrão. # # Sobre o uso do Sed # # sed -n '$=' arquivo # Conta a quantidade linhas do arquivo. # # sed -n "/padrão/=" arquivo # Procura o padrão no arquivo e retorna o número da linha em que ele ocorre. # # (1) sed ':A ; $!N ; s/\n/ /g ; tA ; (2) s/ /,/g' # 1 = Ordena-se a numeração das linhas encontradas na horizontal; # 2 = Acrescenta-se vírgulas. # # sed : # Emulando o comando cat. # Checando parâmetros: [ $# -le 1 ] || [ $# -gt 2 ] && echo "Uso: $0 [padrão] arquivo" && exit # Testes condicionais: [ ! -e $2 ] && echo "-> Arquivo não encontrado." && exit [ ! -r $2 ] && echo "-> Sem permissão de visualização." && exit # O padrão é a variável $1 e o arquivo é $2: PDR=$(sed -n "/$1/=" $2 | sed ':A ; $!N ; s/\n/ /g ; tA ; s/ /,/g') # Checando se o padrão existe no arquivo: [ "$PDR" = "" ] && echo "[$1] padrão não encontrado em: $2" && exit # Resultado na tela: sed : << FIM $2: possui $(sed -n '$=' $2) linhas. $(sed -n "/$1/=" $2 | wc -w) ocorrência(s) do padrão [$1] em $2 Há ocorrência(s) do padrão na(s) seguinte(s) linha(s): $PDR FIM # Fim
Rotina para backup diário, semanal e mensal (exemplo para Firebird)
Java 7/8 - Instalação automatizada no Ubuntu
Script p/ instalar o modem pctel onboard
Nenhum comentário foi encontrado.
Como escolher o melhor escalonador de CPU para melhorar o desempenho da máquina
Curiosidade sobre DOOM Guy e Isabelle de Animal Crossing
Inicializando servidor Ubuntu na AWS e rodando apache em Container
Instalando TeamViewer no Debian 12
Conheça o Octopi, outro frontend para o Pacman com acesso ao AUR (Arch Linux e derivados)
Terminal transparente no Debian 12 com interface i3wm usando Xfce4-Terminal e Compton
O que é isso no meu navegador? [RESOLVIDO] (5)
Eu estou com problemas para usar o QBASIC no Dosbox X (2)
Ubuntu simplesmente morreu (8)
Como colocar uma assinatura digital em um código compilado ! (2)