Sintaxe Grep mais comum

Sintaxe Grep mais comum
Em Linux, grep é uma das muitas ferramentas que vêm pré-instaladas. Na verdade, é um acrônimo que significa “Impressão de expressão regular global." O grep O comando pode procurar uma string em arquivos descritos pela expressão regular. Se alguma partida for encontrada, grep imprime o resultado no console.

Neste guia, daremos uma rápida olhada em algumas das implementações mais comuns do grep comando.

O grep estrutura de comando

Qualquer comando Grep terá os seguintes componentes.

$ grep

Comum grep Sintaxe

Procurando uma string em um arquivo

Esta é a maneira mais simples de usar o grep comando. No exemplo seguinte, grep procurará o termo "dkms" (sem cotações) no arquivo Apt-Packages-Installed.TXT (contendo todos os pacotes APT instalados no sistema).

$ grep "dkms" apt-packages-ingled.TXT

É recomendável usar citações duplas ("") para indicar uma string porque uma string pode conter caracteres especiais e espaços em branco.

Procurando uma string em vários arquivos

O grep O comando também pode executar as pesquisas em vários arquivos. Tudo o que você precisa fazer é especificar os arquivos sequencialmente.

$ grep "dkms" apt-packages-insalled-1.txt apt-packages-Installed-2.TXT

Em vez de especificar manualmente os arquivos, você também pode usar a expressão curinga (*).

$ grep "dkms" apt-packages-insalted-*.TXT

E se quiséssemos realizar a pesquisa em todos os arquivos no diretório atual? Basta definir a expressão do curinga para indicar todos os arquivos no diretório atual.

$ grep "dkms" *

Como podemos ver, grep Encontrei todas as correspondências nos arquivos de texto, mas não lidou bem com os diretórios. Isso leva perfeitamente ao próximo ponto.

Pesquisando subdiretos

Por padrão, grep Não procure os subdiretos por partidas. Se você deseja que Grep faça isso, precisa dizer isso adicionando a bandeira “-r.”

Tente realizar a pesquisa anterior mais uma vez com este novo truque.

$ grep -r "dkms" *

Observe que dadas as camadas de subdiretos e o número de arquivos para analisar, grep pode levar algum tempo. Na tela, parece que está congelado. Então, não entre em pânico se você enfrentar situações semelhantes.

Verificando o número da linha da partida

Tendo o número da linha do grep a partida pode ser uma dádiva de Deus. Para ver o número da linha da partida, use a bandeira “-n.”

$ grep -n "dkms" *.TXT

Contando o número de correspondências

O grep O comando pode contar o número de correspondências no resultado da pesquisa. Para fazer isso, use a bandeira “-l.”

$ grep -c "dkms" *.TXT

Aqui, grep mostrará o número de correspondências para cada arquivo pesquisado.

Imprimir nome de arquivos correspondentes

Às vezes, você quer saber quais arquivos correspondiam ao padrão especificado sem o resultado da pesquisa. Se for esse o caso, use a bandeira “-l.”

$ grep -l "dkms" *.TXT

Imprimir linhas antes e depois da corda correspondente

Por padrão, grep Imprimirá a linha que encontra a string especificada. No entanto, podemos calibrar a saída para imprimir algumas linhas antes e/ou depois da correspondência da string.

Grep imprimirá a corda correspondente junto com 5 linhas anteriores no console no comando a seguir, graças à bandeira "-b".

$ grep -b 5 "dkms" apt-packages-insalled-1.TXT

Da mesma forma, também podemos dizer a Grep para imprimir várias linhas depois de encontrar a string correspondente. Para fazer isso, usaremos a bandeira “-A.”No exemplo seguinte, grep Imprimirá 5 linhas depois de encontrar a partida.

$ grep -a 5 "dkms" apt-packages-insalled-1.TXT

Agora, é hora de combinar esses dois recursos.

$ grep -a 5 -b 5 "dkms" apt-packages-insalled-1.TXT

O comando se torna desnecessariamente confuso dessa maneira. Podemos dizer a Grep para imprimir vários antes e depois que a partida é encontrada para resolver isso. Para fazer isso, usaremos a bandeira “-C.”

$ grep -c 5 "dkms" apt-packages-insalled-1.TXT

Observe que a saída será simétrica em torno da string correspondente se você estiver usando o sinalizador "-C". Se você deseja um número assimétrico de linhas, precisa descrevê-las separadamente usando as bandeiras “-a” e “-b”.

Limitando grep saída

Se você está trabalhando com um grande arquivo de texto que contém muitas instâncias do padrão de pesquisa, então o grep A saída imprimirá um grande pedaço de saída com muita bagunça. Por exemplo,

$ grep "instalado" apt-packages-insalled-1.TXT

Podemos dizer a Grep para limitar o número de linhas que pode ser produzido nessa situação. Para fazer isso, usaremos a bandeira “-m.”O comando ficará assim:

$ grep -m 10 "instalado" apt-packages-insalled-1.TXT

Aqui, grep Imprimirá apenas os 10 primeiros dos padrões correspondentes.

Usando grep com Stdout

O stdout é um fluxo de arquivo. É uma característica poderosa das conchas (como a festa). É um arquivo temporário que contém a saída do comando anterior. Quando o próximo comando é executado, o valor de Stdout é atualizada. Aprender mais sobre Stdin, Stderr, e Stdout em Bash.

O comando Grep também pode funcionar com Stdout contente. Por exemplo, você pode canalizar a saída de um comando para grep trabalhar em.

No exemplo a seguir, o comando apt retorna a lista de todos os pacotes instalados no sistema. Nós canalizamos a saída para grep e procure o termo "dkms" na saída. De acordo com grepO comportamento padrão, ele imprimirá todas as linhas que contêm a string.

$ APT LIST -Instalação | grep "dkms"

A saída pode alertar que o uso do APT em scripts não é recomendado, pois o APT não oferece uma interface CLI estável. Saiba mais sobre o gerente de pacote APT no Ubuntu.

Pensamentos finais

Este é um breve guia sobre alguns dos usos mais comuns do grep comando. Para dominar grep, É recomendável conferir este mega guia demonstrando 30 exemplos de grep.

A página de ajuda de grep Imprime uma página curta de todas as opções disponíveis.

$ grep --help

A página do homem de grep Contém todas as opções com explicações detalhadas.

$ Man Grep

Para iniciantes, este guia sobre grep O comando no Linux é um excelente ponto de partida.

Computação feliz!