grep

Comando Linux grep

Comando Linux grep
Grep é uma das ferramentas mais úteis que você pode ter à sua disposição. Este utilitário de linha de comando realiza uma pesquisa em conjuntos de dados de texto simples. Grep é na verdade um acrônimo para “gpesquisa lobalmente um rregular expressão e print ”. Grep começou sua jornada como parte da família UNIX. Com o tempo, agora está disponível para todas as plataformas populares como Linux, Mac, BSD e até Windows!

Você já usou grep antes? Na maioria das vezes, o truque básico do grep pode fazer a maior parte do trabalho. No entanto, o grep oferece várias maneiras de realizar a pesquisa e ajustar a saída para uma versão mais utilizável. Neste artigo, vamos verificar o uso do comando grep.

Uso Grep

Verificando existência

Se você está executando qualquer tipo de distribuição Linux, então você já tem o grep instalado. Execute o seguinte comando no terminal.

grep --version

Este comando é usado para mostrar a versão do grep atualmente instalado. Agora, precisamos de um arquivo de demonstração. No meu caso, estarei gerando um arquivo de texto que inclui todos os pacotes instalados em meu sistema.

Fundamentos

O uso básico do grep segue a seguinte estrutura.

grep

Ou, para facilitar a compreensão, use este.

grep -e -f

Neste caso, grep irá realizar uma pesquisa no arquivo e imprimir todas as linhas que incluem o padrão (termo de pesquisa).

grep python ~ / Desktop / PackageList.TXT

Grep pesquisou o arquivo “PackageList.txt ”Gerei antes e imprimi todas as linhas que incluem“ python ”.

Esta mesma operação pode ser realizada de outra forma. Veja o seguinte exemplo.

cat ~ / Desktop / PackageList.txt | grep python

Aqui, usando o comando “cat”, enviei o conteúdo do arquivo “PackageList.txt ”para grep. Usando a saída de cat, grep executou a pesquisa e imprimiu as linhas que contêm o termo de pesquisa.

Agora vem uma coisa divertida. Você pode literalmente empilhar vários comandos grep assim.

cat ~ / Desktop / PackageList.txt | grep - | grep p | grep python

O primeiro grep filtra até as linhas com um hífen, o segundo filtra até as linhas com p, e o grep final filtra até as linhas com python. Faz sentido?

Sensibilidade a maiúsculas e minúsculas

Ao realizar uma pesquisa, a diferenciação de maiúsculas e minúsculas é uma questão importante. Por padrão, grep diferencia maiúsculas de minúsculas.

Por exemplo, pesquisar por “Python” não mostrará nenhum resultado.

cat ~ / Desktop / PackageList.txt | grep Python

Para tornar o grep “insensível” a maiúsculas e minúsculas, adicione a seguinte opção.

cat ~ / Desktop / PackageList.txt | grep -i Python

Pesquisa de arquivos

Digamos que você tenha um diretório com vários arquivos de texto. Seu objetivo é identificar os arquivos que contêm ou não um padrão (termo de pesquisa).

Acho este método bastante útil ao pesquisar em uma pilha de arquivos de log. Como não tenho tempo para abrir e verificar todos os arquivos manualmente, tenho o grep para fazer o trabalho para mim.

Para listar arquivos contendo a correspondência, use o sinalizador “-l”.

grep -l / search / diretório / *

Como o resultado sugere, o termo “python” está presente em todos os 3 arquivos presentes no diretório “Desktop”.

Para listar arquivos sem qualquer correspondência, use a sinalização “-L”.

grep -L / search / diretório / *

“NoMatch.txt ”é o único arquivo que não contém o termo“ python ”.

Pesquisa invertida

O comportamento padrão do grep é imprimir apenas as linhas com o padrão correspondente, certo? É hora de reverter o processo. Desta vez, imprimiremos apenas as linhas SEM o padrão correspondente.

Basta passar a opção “-v” para o grep.

cat ~ / Desktop / PackageList.txt | grep -i -v Python

Imprimir linhas antes / depois da partida

Por padrão, grep irá imprimir apenas a linha que corresponde ao padrão de pesquisa. Usando esta técnica, você pode dizer ao grep para imprimir as linhas antes / depois da partida também.

Para imprimir linhas antes da partida, use a seguinte estrutura.

grep -B

Aqui, 5 é a linha de número que grep imprimirá ANTES da linha correspondente.

Para imprimir linhas após a partida, use o seguinte.

grep -A

Que tal imprimir antes e depois da linha correspondente? Nesse caso, use a sinalização “-C”.

grep -C

Número da linha

Quando grep mostra a saída, ele não menciona o número da linha. Para o (s) número (s) de linha associado (s), use o sinalizador “-n”.

grep -n

Única palavra

Se o sinalizador “-w” for usado, grep tratará o padrão como uma palavra inteira.

grep -w

Limitando a pesquisa grep

Grep permite especificar o número de linhas a pesquisar no arquivo. Este método é útil se você estiver lidando com um arquivo grande (como o log do sistema). Use a sinalização “-m”.

grep -m

Pesquisa recursiva

É um dos recursos mais úteis que o grep oferece para uso intenso. O Grep pode pesquisar recursivamente em um diretório e encontrar todas as correspondências de todos os arquivos que enfrenta.

grep -R

Ou,

grep -r

Costumo encontrar o uso dessa função recursiva junto com a sinalização “-l”.

Modo silencioso

Grep pode ser executado no modo "silencioso". Quando executado no modo “silencioso”, grep não imprimirá nenhuma saída para o terminal. Em vez disso, ele retornará 0 (pelo menos, uma correspondência foi encontrada) ou 1 (nenhuma correspondência encontrada).

grep -q
echo $?

Regex

Grep também permite pesquisas regex (expressão regular). Isso adiciona um novo nível de complexidade e usabilidade do grep como uma ferramenta de pesquisa.

Por exemplo, você pode usar colchetes para pesquisar "também" e "dois" ao mesmo tempo.

cat ~ / Desktop / gpl-3.0.txt | grep t [wo] o

Este próximo exemplo só irá imprimir a linha se a correspondência ocorrer no início da linha.

grep ^ GNU ~ / Desktop / gpl-3.0.TXT

Quanto a combinar o final, use este.

grep você $ ~ / Desktop / gpl-3.0.TXT

Se você quiser usar Perl regex, use a sinalização “-P”. Ele tratará o padrão como regex Perl.

grep -P

Pensamentos finais

Grep oferece várias maneiras de personalizar a função de pesquisa. A disponibilidade de regex abre um novo horizonte para o uso potencial de grep. O legal é que você pode usar regex geral e Perl; qualquer coisa com que você se sinta confortável.

Para a explicação mais detalhada, sempre consulte a página do manual.

homem grep

Saúde!

Como desenvolver um jogo no Linux
Uma década atrás, poucos usuários de Linux preveriam que seu sistema operacional favorito um dia seria uma plataforma de jogos popular para videogames...
Portas de código aberto para motores de jogos comerciais
Recriações gratuitas, de código aberto e de mecanismo de jogo de plataforma cruzada podem ser usadas para jogar jogos antigos, bem como alguns dos tít...
Melhores jogos de linha de comando para Linux
A linha de comando não é apenas sua maior aliada ao usar o Linux - ela também pode ser uma fonte de entretenimento porque você pode usá-la para jogar ...