Comando Grep no Linux

Grep Command Linux



O comando Grep (impressão de expressão regular global) é o utilitário de linha de comando do Linux mais poderoso e usado regularmente. Usando Grep, você pode pesquisar informações úteis especificando um critério de pesquisa. Ele procura um padrão de expressão específico em um arquivo especificado. Ao encontrar uma correspondência, ele imprime todas as linhas de um arquivo que correspondeu ao padrão especificado. É útil quando você precisa filtrar 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, caso esteja faltando em seu sistema, você pode instalá-lo usando o seguinte método no Terminal:



$sudo apt-get install pegada

Usando Grep

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



$pegada [opções]PADRONIZAR[ARQUIVO...]

Pesquisar por arquivos

Para pesquisar um nome de arquivo em um diretório que contém uma string específica, você pode usar o grep da seguinte maneira:





$ls -a | pegada -eufragmento

Por exemplo, para pesquisar um nome de arquivo que contém uma string teste , o comando seria:

$ls-a| pegada-euteste

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



Procure por uma string em um arquivo

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

$pegadastring nome do arquivo

Por exemplo, para procurar uma string teste em um arquivo chamado testfile1 , nós usamos o seguinte comando :

$pegadafuncionário testfile1

A saída acima retornou a frase do testfile1 que contém a string empregado .

Procure por uma string em vários arquivos

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

$pegadastring filename1 filename2

Por exemplo, para procurar um string employee em nossos dois arquivos testfile1 e testfile2, usamos o seguinte comando:

$pegadafuncionário testfile1 testfile2

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

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

$pegadastring nome do arquivo*

Por exemplo, se tomarmos o exemplo acima em que nossos nomes de arquivo foram testfile1 e testfile2 , o comando seria:

$pegadaarquivo de teste do funcionário*

Procure por uma string em um arquivo, ignorando a caixa da string

Na maioria das vezes, você encontrou isso quando pesquisa por algo usando grep, mas não recebe uma saída. Isso acontece devido a uma incompatibilidade de maiúsculas e minúsculas durante a busca por uma string. Como em nosso exemplo, se usarmos por engano Empregado ao invés de empregado , ele retornará nil, pois nosso arquivo contém a string empregado em letras minúsculas.

Você pode dizer ao grep para ignorar o caso da string de pesquisa usando o sinalizador –i após o grep da seguinte forma:

$pegada–I string filename

Ao usar o sinalizador –i, o comando executará uma pesquisa sem distinção entre maiúsculas e minúsculas e retornará todas as linhas que contêm a string empregado nele sem levar em conta as letras estão em maiúsculas ou minúsculas.

Pesquise usando a expressão regular

Se usada corretamente, a expressão regular é um recurso muito eficaz no grep. Com o comando Grep, você pode definir uma expressão regular com uma palavra-chave inicial e final. Ao fazer isso, você não precisará digitar toda a linha com o comando grep. A sintaxe a seguir pode ser usada para esse propósito.

$pegadapalavra-chave inicial.*terminando o nome do arquivo de palavra-chave

Por exemplo, para pesquisar uma linha em um arquivo chamado testfile1 que começa com a string this e termina com os dados da string, usamos o seguinte comando:

$pegadaisto.*data testfile1

Irá imprimir toda a linha do testfile1 contendo a expressão (palavra-chave inicial this e dados da palavra-chave final).

Imprime um determinado número de linhas após / antes da string de pesquisa

Você também pode exibir o número específico de linhas em um arquivo antes / depois de uma correspondência de string junto com a própria string correspondida. A seguinte sintaxe pode ser usada para essa finalidade:

$pegada -PARA <N>string nome do arquivo

Ele exibirá um número N de linhas depois que a string for correspondida no arquivo especificado, incluindo a string correspondida.

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

O seguinte comando irá mostrar a linha correspondente contendo a string empregado , junto com as 2 linhas depois dele.

$pegada-PARA2–I funcionário testfile2

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

$pegada -B <N>string nome do arquivo

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

$pegada -C <N>string nome do arquivo

Destacando a busca

Grep, por padrão, imprime as linhas correspondentes, mas não mostra qual parte da linha corresponde. Se você usar a opção –color com grep, ele mostrará onde as strings de usinagem aparecem em seu arquivo. Grep por padrão usa a cor vermelha para realçar.

A seguinte sintaxe pode ser usada para essa finalidade:

$pegadastring nome do arquivo--cor

Contando o número de partidas

Se você quiser contar quantas vezes uma determinada palavra aparece em um arquivo específico, você pode usar o grep com a opção –c. Ele retorna apenas o número de correspondências, e não as correspondências em si. A seguinte sintaxe pode ser usada para essa finalidade:

$pegada–C string filename

Este é o nosso arquivo de amostra semelhante a:

A seguir está um exemplo de um comando que retornou o número de vezes que 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 as que correspondem à entrada. Para fazer isso, basta usar o sinalizador –v seguido por grep:

$pegada–V string filename

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

$pegada–V account 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 instalada de apt saída do comando, você deseja encontrar apenas os pacotes que foram instalados automaticamente, você pode filtrar o resultado usando grep da seguinte forma:

$apto--instaladoLista| pegadaautomático

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

$lscpu| pegadaArquitetura

Neste artigo, descrevemos alguns exemplos que o ajudarão a entender os comandos grep e seu uso em diferentes condições. Ter um forte controle sobre o comando grep pode economizar muito tempo se você precisar examinar grandes configurações ou arquivos de log e folhear informações úteis neles.