Procurando um padrão num arquivo

Publicado por Sandro Marcell 02/08/2007

[ Hits: 5.007 ]

Homepage: http://sanmarcell.wordpress.com

Download pad.sh




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.

  



Esconder código-fonte

#!/bin/sh
#
# Descobrindo posição dum padrão num arquivo.
#
# Sandro Marcell ([email protected])
#
# 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

Scripts recomendados

Ativar serviço que está parado

LoadbalanceFAILOVER

renameciclefile.sh

Diagnóstico de Rede

Script de instalação do Xorg 7.2 modificado para processadores AMD64


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts