Como usar o comando Grep no Linux

Compreender o comando grep com exemplos práticos para filtrar e exibir facilmente o conteúdo do arquivo

GREPsignifica 'Impressão de expressão regular global'. É um utilitário de linha de comando útil fornecido pelo Linux, para pesquisar a linha de texto que corresponde ao padrão fornecido pelo usuário.

greprecebe a entrada do usuário na forma de strings ou palavras que o usuário deseja pesquisar em um arquivo específico. O comando então verifica o arquivo especificado pelo usuário para este padrão e retorna as linhas que correspondem ao padrão fornecido.

Ele faz um excelente trabalho ao filtrar o conteúdo de um arquivo, tornando mais fácil nossa tarefa de pesquisar um conteúdo específico em um ou vários arquivos simultaneamente.

Neste artigo, vamos revisar o funcionamento do grepcomando com alguns exemplos práticos em detalhes.

Opções disponíveis com grepcomando

Estas são algumas das opções fundamentais que você usará freqüentemente com o grepcomando.

Opção Descrição
-i Para uma pesquisa que não diferencia maiúsculas de minúsculas
-r Para pesquisar recursivamente por todos os arquivos no diretório especificado e seus subdiretórios
-c Para exibir o número total de vezes que uma string aparece
-v Para exibir as linhas não correspondentes
-w Filtro para aquela palavra particular usada separadamente

Usando o grepcomando

grepO comando geralmente é usado com o |utilitário pipe ( ). Ele pode ser implementado com o tubo de shell quando você quiser usá-lo com alguns outros comandos do Linux. Embora, greptambém possa ser usado individualmente sem o |utilitário pipe ( ).

Vejamos algumas das sintaxes básicas do grepcomando com e sem o utilitário pipe.

Deixe-me mostrar primeiro o arquivo de texto de amostra que usarei para ilustrar o grepcomando.

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource
cartesian coordinates
importance of all th cartesian coordinates.
Following are two empty lines.



use of a bullock cart is a common sight in the village for the agrarian chores.

This is the end of the sample file.

grepusado com o utilitário pipe (|)

grepO comando pode ser implementado junto com outros comandos do Linux usando os canais do shell. Por exemplo, usando o catcomando para exibir o conteúdo do arquivo, mas ao mesmo tempo canalizando a saída usando o grepcomando para exibir apenas o conteúdo que você deseja ver. Isso ficará mais claro quando examinarmos o exemplo.

Sintaxe :

[command] | grep [string]

Exemplo :

cat sample.txt | grep legislature

Aqui, usei o catcomando para exibir algumas linhas do arquivo 'sample.txt'. Apenas as linhas que contêm a palavra 'legislatura' devem ser exibidas e ignorar o resto das linhas.

Produto :

[email protected]:~/workspace$ cat sample.txt | grep legislature
india stands on three pillars of legislature, executive and judiciary.
[email protected]:~/workspace$

grepusado sem utilitário de pipe (|)

greppode ser usado diretamente como um comando individual sem usar o | utilitário pipe ( ).

Sintaxe :

grep [string_to_be_searched] [filename]

Exemplo :

grep India sample.txt

Produto :

India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource

Portanto, usei o grepcomando diretamente para filtrar as linhas que contêm a string 'Índia' do arquivo de texto 'amostra.txt'.

Pesquisa que não diferencia maiúsculas de minúsculas usando o grepcomando

O Linux é muito cauteloso quanto à diferenciação de maiúsculas e minúsculas quando disparamos os comandos no terminal. Isso requer que o usuário tome cuidado com a caixa da string colocada no comando.

Vamos ver isso por meio de um exemplo.

grep peace sample.txt

Nesse caso, não obteremos uma saída, pois não existe uma palavra como 'paz' no arquivo de amostra. Temos a palavra 'Paz' com 'P' maiúsculo. A palavra é a mesma, mas quando usamos o grepcomando sem nenhuma opção, ele procura a correspondência exata no arquivo, desconsiderando qualquer alteração na caixa das letras.

Para evitar essa ambigüidade, você pode simplesmente usar a -iopção que diz literalmente o grepcomando “esqueça o caso em que coloquei a string e apenas pesquise todos os padrões correspondentes no arquivo”.

Sintaxe:

grep -i [string] [filename]

Exemplo :

grep -i peace sample.txt

Produto :

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
India Is a Beautiful Country Of Peace Loving People.

Todas as linhas correspondentes são exibidas independentemente do caso em que a string correspondente é.

Pesquisa recursiva usando grepcomando

A -ropção pesquisará todos os arquivos em um diretório e todos os seus subdiretórios que correspondam ao padrão de string fornecido pelo usuário no comando.

Sintaxe :

grep -i -r [string] [file_path]

Exemplo :

grep -i -r tomcat /home/gaurav/workspace

A string aqui é 'tomcat' e será pesquisada na área de trabalho do diretório. Todos os subdiretórios e arquivos no diretório 'espaço de trabalho' também serão verificados para corresponder ao padrão de string fornecido.

Produto :

./context_log.policy:// catalina.policy - Security Policy Permissions for Tomcat 7
./context_log.policy:// Note: If tomcat-juli.jar is in ${catalina.base} and not in ${catalina.home},
./context_log.policy://  grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..}
./context_log.policy:grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
./context_log.policy:    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server";
./context.xml:    
./catalina.properties:# - Tomcat Bootstrap JARs
./catalina.properties:# - Tomcat API JARs
./catalina.properties:# - Tomcat JARs
./catalina.properties:# - Common non-Tomcat JARs
./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar
./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.char.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000
./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000
./server.xml:              pathname="conf/tomcat-users.xml" />
./server.xml:    
./tomcat-users.xml:  
./tomcat-users.xml:
./web.xml:  
./web.xml:  

NOTA : Ao usar a -ropção com o grepcomando, precisamos fornecer o caminho do arquivo e não o nome do arquivo

Pesquisando palavras inteiras apenas com grepcomando

Muitas vezes, você estará procurando por uma palavra, mas acabará preenchendo seu terminal com as linhas correspondentes que contêm a palavra correspondente, mas não como uma palavra individual. Você pode ver as linhas que contêm algumas palavras cuja subparte é a string que você inseriu.

Ficou confuso com isso? Não se preocupe, é muito mais fácil entender depois que você pegar o exemplo.

Exemplo :

Aqui, desejo pesquisar uma palavra individual 'carrinho' e exibir todas as linhas que correspondem a essa palavra no arquivo 'amostra.txt'.

grep -i cart sample.txt

Produto :

Cartesian coordinates
importance of all the Cartesian coordinates.
use of a bullock cart is a common sight in the village for the agrarian chores
The cart went missing as the boy left it loose.

Na saída, você pode observar que a palavra 'cartesiano' também contém a palavra 'carrinho' e, portanto, as linhas contendo a palavra 'cartesiano' também são exibidas, embora não desejemos que sejam exibidas.

Você pode usar a -wopção com o grepcomando para resolver essa ambigüidade.

Sintaxe :

grep -i -w [string] [filename]

Exemplo :

grep -i -w cart sample.txt

Produto :

use of a bullock cart is a common sight in the village for the agrarian chores.
The cart went missing as the boy left it loose.

Agora, quando tiver usado a wopção -, grepvocê obterá apenas as linhas em que a palavra 'carrinho' é usada como um todo.

Pesquisa invertida usando o grepcomando

grepcomando também pode ser usado de forma reversa. Podemos usar o grepcomando de forma oposta, ocultando as linhas correspondentes e exibindo apenas as linhas onde a correspondência não foi encontrada. Você pode fazer isso usando a -vopção com o grepcomando.

Sintaxe :

grep -i -v [string] [filename]

Exemplo :

grep -i -v resource sample.txt

Produto :

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
cartesian coordinates
importance of all th cartesian coordinates.




use of a bullock cart is a common sight in the village for the agrarian chores.
This is the end of the sample file.

Na saída, todas as outras linhas são exibidas, exceto a linha que contém a palavra 'recurso'.

Contando ocorrências de string correspondente

A saída do grepcomando geralmente é muito longa se os dados no arquivo forem extensos. Quanto mais correspondências, mais longas são as saídas do grepcomando. O Linux oferece uma opção onde você pode exibir o número de ocorrências da correspondência.

Sintaxe :

grep -i -c [string] [filename]

Exemplo :

grep -i -c india sample.txt

Produto :

[email protected]:~/workspace$ grep -i -c india sample.txt
4
[email protected]:~/workspace$

Aqui, a saída é um número que é o número de ocorrências da palavra 'Índia' no arquivo sample.txt.

NOTA : Eu usei a -iopção em todos os exemplos apenas para ficar seguro com o problema de distinção entre maiúsculas e minúsculas. Caso você tenha certeza da caixa da palavra que está procurando, pode omitir a -i opção com segurança .

Conclusão

Aprendemos os usos fundamentais do grepcomando nos sistemas Linux neste tutorial. Também aprendemos a exibir diversos conteúdos que melhor atendem às nossas necessidades e a não sobrecarregar o terminal com muitas linhas. grepO comando certamente economizará tempo se for usado para escanear grandes conjuntos de dados.

Tags: #grep

Como copiar e colar no Chromebook

Como copiar e colar no Chromebook

A primeira coisa que você pode se perguntar ao mudar para um Chromebook é como fazer as coisas básicas - o tipo de coisa que você tinha nas costas da mão em seu sistema operacional anterior. Copiar e colar é uma função fundamental que você deve usar em um ponto ou outro.

Como fazer um teste de digitação no Linux com tt

Como fazer um teste de digitação no Linux com tt

Na era moderna da tecnologia, a digitação se tornou uma das atividades mais comuns para muitas profissões. Aprender a digitar mais rápido com precisão pode ajudá-lo a realizar mais tarefas no mesmo período.

Wi-Fi não funciona no Ubuntu? Veja como consertar

Wi-Fi não funciona no Ubuntu? Veja como consertar

O Ubuntu é popular por sua robustez e relativamente menos erros. Mas não sem seu saco de problemas, com certeza. Um desses problemas é com o driver Wi-Fi. Você pode ligar o sistema apenas para descobrir que o Wi-Fi não está funcionando.

Como criar e ler códigos QR no Chromebook

Como criar e ler códigos QR no Chromebook

Códigos de resposta rápida, ou códigos QR para abreviar, são códigos de barras avançados que contêm mais informações do que um código de barras tradicional. Esses códigos são bidimensionais, permitindo que você os escaneie vertical ou horizontalmente.

Como instalar e remover pacotes no Arch Linux

Como instalar e remover pacotes no Arch Linux

Quer instalar pacotes no Arch Linux, mas não sabe como? Muitas pessoas enfrentam esse problema quando migram pela primeira vez de distribuições baseadas em Debian para o Arch. No entanto, você pode gerenciar facilmente pacotes em seu sistema baseado em Arch usando gerenciadores de pacotes.

Como instalar o Spotify no Linux

Como instalar o Spotify no Linux

O Spotify é um dos maiores serviços de streaming de música que existe. Possui clientes nativos para dispositivos móveis (Android e iOS) e desktop (Mac e Windows).

9 comandos básicos para começar a usar o Linux

9 comandos básicos para começar a usar o Linux

Os guias de instruções do Linux geralmente esperam que você execute certas operações no terminal, que podem parecer intimidantes no início. Mas não se preocupe; esta folha de dicas de comandos do Linux cobrirá o processo de abertura de um terminal e emissão de alguns comandos úteis.

Como mover arquivos do Linux com o comando Mv

Como mover arquivos do Linux com o comando Mv

Embora você provavelmente já saiba como mover um arquivo no Linux usando o navegador de arquivos GUI, você pode estar se perguntando se existe um comando mover no terminal que permite mover arquivos rapidamente para diretórios diferentes. O comando mv é o que você deseja e é fácil de usar com sua sintaxe simples e alguns sinalizadores de segurança opcionais.

Diferença entre o superusuário raiz no Ubuntu

Diferença entre o superusuário raiz no Ubuntu

Quer saber qual é a diferença entre Root Superuser no Ubuntu? Bem, nós temos você coberto aqui.

As 10 melhores distribuições Linux baseadas em Debian

As 10 melhores distribuições Linux baseadas em Debian

O Debian padrão e seu derivado popular Ubuntu são ótimas opções versáteis para um sistema Linux, mas se você tiver necessidades mais especializadas, pode querer uma alternativa Debian.