Procurando um padrão num arquivo
Publicado por Sandro Marcell 02/08/2007
[ Hits: 5.523 ]
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
APPSOM - Listar e reproduzir músicas, vídeos e imagens
Script de backup para fita DAT
arrcomb: Gerando Arranjos e Combinações
Automatizar a instalação do IRPF no Linux
Nenhum comentário foi encontrado.
Qt 6.10 e Python 3.14 puxam o ritmo do software livre nesta quarta
Atualizações de Apps, Desktop e Kernel agitam o ecossistema Linux nesta terça-feira
Miyoo Mini Plus + Onion OS (Linux)
IA local no bolso, novo visual no Raspberry Pi OS e mais destaques do software livre
Kernel turbinado, compatibilidade em alta e debate sobre sustentabilidade: o dia no mundo Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Adicionando o repositório backports no Debian 13 Trixie
Como listar os arquivos em "bloquin... [RESOLVIDO] (6)
Como colocar atalho para uma pasta na área de trabalho do Ubuntu 24.04... (2)