Grep: Aprendendo Shell Scripting Usando o Comando de Terminal Grep

comando grep

Aprendendo Shell Scripting usando o comando terminal: grep

O comando "grep" em sistemas operacionais livres como GNU / Linux é um comando muito valioso e útil. Seu nome vem da frase em inglês: «Global Regular Expression Print» e é usado para realizar a tarefa de encontrar, combinar e exibir um padrão de pesquisa ou uma expressão regular de um (1) arquivo ou vários arquivos de texto.

Basicamente, o comando «grep» procura o padrão indicado nos parâmetros do comando de comando e imprime os resultados obtidos seguindo as indicações dos parâmetros do comando de comando., que pode ser: a Tela ou um Arquivo de saída.

Introdução ao comando "grep"

Já em outras publicações anteriores do mesmo blog, como esta «Alguns comandos básicos em ...»Comentamos sobre o uso básico deste ótimo comando, mas Nesta publicação, veremos um uso mais intermediário e avançado do comando "grep" em comandos de comando funcionais e úteis que podem facilitar certas tarefas reais. dentro de nossos scripts de shell ou diretamente no terminal para obter um resultado mais imediato em uma tarefa específica a ser executada.

Exemplos práticos

Veja nossa posição / localização

impressão o conteúdo do nosso diretório atual usando uma árvore de diretório gráfica:

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'

Exemplo:

Grep: diretório semelhante a uma árvore

Gere uma senha aleatória de 30 caracteres de comprimento

Gere strings aleatórias dentro de / dev / urandom e, em seguida, selecione e exiba um único (1) usando a filtragem com o comando «grep» para apenas caracteres alfanuméricos, com a condição do tamanho dos primeiros 30 caracteres, eliminando todas as alimentações de linha .

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

Exemplo:

Grep: Gerar senha

Gere um resumo gráfico das conexões

Visualize de forma gráfica (tabela) e resumida a quantidade de conexões de rede internas e externas detectadas pelo comando "netstat" de um host em um determinado momento.

netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }'

Exemplo:

Grep: Gráfico de conexões do Netstat

Também pode ser utilizado para gerar uma tabela resumo do número de conexões por tipo delas, conforme mostrado a seguir:

netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

Exemplo:

Grep: tabelas de resumo com Netstat

Encontre uma string (padrão) dentro de um caminho

Localize e exiba todas as correspondências de um padrão em nomes de arquivo ou conteúdo de arquivo. O uso de parâmetros para conseguir isso são: -R (Recorrência para subdiretórios), -n (Mostrar números de linha de correspondências), -i (Ignorar maiúsculas e minúsculas), -s (Suprimir 'não existem mensagens "E" não pode ser lido "), -I (Ignora binários na pesquisa).

grep -RnisI  *

Grep: Encontrando padrões em arquivos e pastas

Ele também pode ser usado de uma forma mais avançada se for usado em um prompt de comando com o comando "find" para localizar um padrão em um tipo de arquivo predefinido. como mostrado abaixo:

find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;

Grep: Pesquisa de padrões em arquivos

Conheça a quantidade de dados na memória RAM

Isso é útil para saber exatamente quantos dados (informações) estão esperando para serem gravados no disco rígido e é necessário forçar a reinicialização ou desligamento de um computador.

grep ^Dirty /proc/meminfo

Grep: Dados em RAM

Conheça nosso endereço IP WAN

É sempre muito útil saber nosso IP WAN automaticamente do terminal e, em seguida, passar esse parâmetro para outra tarefa automatizada. Este exemplo usa o serviço DynDNS para obtê-lo.

curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"

Grep: Conheça nosso IP WAN

Liste o equipamento conectado a um segmento de rede

Usando um loop for com o comando "ping" e filtrando o resultado com o comando "grep", podemos validar nossos computadores conectados à rede com o serviço de ping habilitado sem a necessidade da ferramenta NMap.

for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done

Exemplo:

Para listar o campo de endereço IP rastreado, você pode fazer um uso mais avançado desta linha, filtrando os resultados do comando «grep» usando os comandos «awk» e «cut», conforme mostrado abaixo:

for i in {100..110}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done | awk '{ print $4 }' | cut -d ":" -f 1

Exemplo:

Grep: Listagem de IP LAN

Estes exemplos de linhas de comando usando o comando grep. E eles são usados ​​para serem usados ​​diretamente do console ou indiretamente, inserindo-os em um script (tarefa automatizada).

Na próxima postagem sobre Shell Scripting, exploraremos outros comandos.

Se você quiser aprender um pouco mais sobre o comando «grep», visite este link «DEBIAN Wiki»E se você quiser aprender mais sobre Shell Scripting em nosso próprio Blog, você pode conferir nossas outras publicações sobre o assunto, clicando aqui: Scripting em FromLinux


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

      Leandro dito

    O artigo é ótimo, muito obrigado.

      Linux pós-instalação dito

    De nada um prazer! Agora vem um com o comando Sed.