Comando Grep no Linux

Comando Grep no Linux
O comando Grep (Expressão regular global) é o utilitário de linha de comando Linux mais poderoso e regularmente usado. Usando o Grep, você pode procurar informações úteis especificando um critério de pesquisa. Ele procura um padrão de expressão específico em um arquivo especificado. Quando encontra uma correspondência, ele imprime todas as linhas de um arquivo que correspondia ao padrão especificado. Ele é útil quando você precisa filtrar através de grandes arquivos de log.

Neste artigo, explicaremos o uso do utilitário Grep com diferentes exemplos. Usaremos o Debian 10 para explicar os comandos e métodos mencionados neste artigo.

Instalando Grep

Grep vem instalado na maioria das distribuições Linux. No entanto, no caso, está faltando no seu sistema, você pode instalá -lo usando o seguinte método no terminal:

$ sudo apt-get install grep

Usando grep

Aqui está a sintaxe básica do comando Grep. Começa com Grep seguido por algumas opções e critérios de pesquisa e depois termina com o nome do arquivo.

$ grep [options] padrão [arquivo…]

Procure arquivos

Para procurar um nome de arquivo em um diretório que contenha uma string específica, você pode usar o Grep da seguinte maneira:

$ ls -l | grep -i “string

Por exemplo, procurar um nome de arquivo que contém uma string “teste“, O comando seria:

$ ls -l | Teste de Grep -i

Este comando lista todos os arquivos que contêm a string “teste”.

Procure uma string em um arquivo

Para procurar uma string em um arquivo específico, você pode usar a seguinte sintaxe de comando:

$ grep "string" nome do arquivo

Por exemplo, para procurar uma string “teste”Em um arquivo chamado testfile1, Usamos o seguinte comando:

$ grep “funcionário” testfile1

A saída acima retornou a frase do testfile1 que contém a string “funcionário”.

Procure uma string em vários arquivos

Para procurar uma string em vários arquivos, você pode usar a seguinte sintaxe de comando:

$ grep "string" filename1 nome de arquivo2

Por exemplo, para procurar uma string "funcionário" em nossos dois arquivos testfile1 e testfile2, usamos o seguinte comando:

$ grep “funcionário” testfile1 testfile2

O comando acima listará todas as linhas que contêm a string "funcionário" de ambos os arquivos testfile1 e testfile2.

Você também pode usar um personagem curinga se todos os nomes de arquivos começarem com o mesmo texto.

$ grep “string” nome do arquivo*

Como, se tomarmos o exemplo acima em que nossos nomes de arquivos foram testfile1 e testfile2 , O comando seria:

$ grep “funcionário” testfile*

Procure uma string em um arquivo ignorando o caso da string

Na maioria das vezes, você encontrou isso quando procura algo usando grep, mas não recebe uma saída. Isso acontece por causa de uma incompatibilidade de caso enquanto procura uma string. Como em nosso exemplo, se usarmos por engano “Funcionário" em vez de "funcionário”, Ele retornará nulo, pois nosso arquivo contém a string“funcionário”Em letras minúsculas.

Você pode dizer a Grep para ignorar o caso da string de pesquisa usando -i sinalizador após o grep da seguinte maneira:

$ grep -i "string" nome do arquivo

Ao usar o sinalizador -i, o comando executará a pesquisa insensível ao caso e retornará todas as linhas que contêm a string “funcionário”Nele sem levar em consideração as cartas estão em maiúsculas ou minúsculas.

Pesquise usando a expressão regular

Se usado adequadamente, a expressão regular é uma característica muito eficaz no Grep. Com o comando Grep, você pode definir uma expressão regular com uma palavra -chave inicial e inicial. Ao fazer isso, você não precisará digitar toda a linha com o comando grep. A sintaxe a seguir pode ser usada para esse fim.

$ grep “palavra -chave inicial.*EndingKeyword ”nome do arquivo

Por exemplo, para pesquisar uma linha em um arquivo chamado TestFile1 que começa com a string "This" e termina com a string "Data", usamos o seguinte comando:

$ grep “isso.*dados ”testfile1

Ele imprimirá toda a linha do testfile1 Contendo a expressão (palavra -chave inicial "this" e a palavra -chave final "dados").

Imprima o número específico de linhas depois/antes da sequência de pesquisa

Você também pode exibir o número específico de linhas em um arquivo antes/depois de uma combinação de string junto com a própria string correspondente. A sintaxe a seguir pode ser usada para esse fim:

$ grep -a “String” nome do arquivo

Ele exibirá n número de linhas após a correspondência correspondente no arquivo especificado, incluindo a string correspondente.

Por exemplo, este é o nosso arquivo de amostra nomeado testfile2.

O comando a seguir produzirá a linha correspondente que contém a string “funcionário”, Junto com as 2 linhas depois dela.

$ grep -a 2 -i “funcionário” testfile2

Da mesma forma, para exibir N número de linhas antes da sequência correspondente em um arquivo específico, use a seguinte sintaxe:

$ grep -b “String” nome do arquivo

Para exibir n número de linhas ao redor da string em um arquivo específico, use a seguinte sintaxe:

$ grep -c “String” nome do arquivo

Destacando a pesquisa

Grep por padrão de impressão correspondente linhas, mas não mostra qual parte da linha é correspondente. Se você usar a opção -corpor. Grep por padrão, use a cor vermelha para destacar.

A sintaxe a seguir pode ser usada para esse fim:

$ grep “string” nome do arquivo -corado

Contando o número de partidas

Se você quiser contar quantas vezes uma palavra específica aparece em um arquivo específico, você pode usar o Grep com -C opção. Ele retorna apenas o número de partidas em vez das próprias partidas. A sintaxe a seguir pode ser usada para esse fim:

$ grep -c "string" nome do arquivo

Este é o nosso arquivo de amostra parece:

A seguir, um exemplo de um comando que retornou o número de vezes a palavra arquivo apareceu em um arquivo chamado TestFile3.

Pesquisa invertida

Às vezes, você deseja realizar uma pesquisa reversa que exibe todas as linhas, exceto que correspondem à entrada. Para fazer isso, basta usar a bandeira -v seguida por Grep:

$ grep -v “string” nome do arquivo

Por exemplo, para exibir todas as linhas em um arquivo TestFile3 que não contêm a palavra "conta" neles, usamos o seguinte comando:

$ grep -v "conta" testfile3

Usando Grep com outros comandos

Grep também pode ser usado para filtrar o resultado necessário da saída de diferentes comandos. Por exemplo, do “Lista APT -Instala ” Saída de comando, você deseja encontrar apenas os pacotes instalados automaticamente, você pode filtrar o resultado usando o Grep da seguinte maneira:

$ APT -Lista de instalação | Grep Automático

Da mesma forma, a LSCPU fornece informações detalhadas sobre a CPU. Se você estiver interessado apenas nas informações sobre a arquitetura da CPU, pode filtrá -las usando o seguinte comando:

$ lscpu | Arquitetura Grep

Neste artigo, descrevemos alguns exemplos que o ajudarão a entender os comandos Grep e seu uso em diferentes condições. Ter uma forte aderência ao comando Grep pode economizar muito tempo se você precisar olhar para grandes arquivos de configuração ou log e ignorar informações úteis através deles.