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.