Anonim

Impressão global de expressão regular ou apenas grep é um dos comandos mais versáteis e comuns nos sistemas Unix e Linux. O comando procura por arquivos de entrada únicos ou múltiplos e linhas de padrão correspondentes. Como resultado, você obtém uma saída padrão com as linhas correspondentes.

Se você não especificar um arquivo, o grep usará a entrada padrão para as leituras e provavelmente será a saída de outro comando. No geral, o grep apresenta uma sintaxe direta, independentemente de você usá-lo com ou sem o nome do arquivo.

Este artigo fornece uma visão geral rápida da sintaxe grep e alguns comandos básicos que você pode usar com ou sem o nome do arquivo.

Antes que você comece

Todos os comandos grep seguem a mesma sintaxe e cada parâmetro tem uma função específica. Aqui está a linha de amostra:

grep PATTERN

Você pode usar um número de OPTIONS no grep para controlar a saída do comando e o número começa em zero. PATTERN indica o padrão de pesquisa que você deseja aplicar. Quanto ao ARQUIVO, é aqui que o nome ou os nomes dos arquivos vão, mas o parâmetro pode ser definido como zero.

Pesquisa de string na saída de comando

Conforme indicado, você não precisa usar arquivos de entrada específicos. A saída de outro comando pode ser usada no grep para obter linhas que correspondem exatamente a um padrão. Isso pode ser usado para determinar quais processos estão ativos no sistema. Esta é uma sintaxe de comando de amostra:

$ ps -ef | grep www-data

A saída que você obtém deve ser algo como isto:

www-data 18247 12675 4 16:00? 00:00:00 php-fpm: piscina www
raiz 18272 17714 0 16:00 pts / 0 00:00:00 grep –color = auto –excluir-dir = .bzr –exclude-dir = CVS –exclude-dir = .git –exclude-dir = .hg –exclude- dir = .svn www-dados
www-data 31147 12770 0 out22? 00:05:51 nginx: processo do trabalhador
www-data 31148 12770 0 out22? 00:00:00 nginx: processo do gerenciador de cache

Existe uma maneira de excluir a linha de comando que apresenta os processos grep. Para isso, você precisa usar o $ ps -ef | grep www-data | comando grep -v grep .

Grep Word Search

Você pode usar os comandos grep para procurar palavras específicas nos arquivos do seu sistema. De fato, não há necessidade de digitar uma palavra inteira. Você pode simplesmente usar o gnu, por exemplo, e o comando exibe todas as palavras que contêm essas três letras. A sintaxe do comando é:

$ grep gnu / usr / compartilhamento / palavras

Após executar o comando, sua saída deve ser algo como isto:

cygnus
gnu
interregno
lgnu9d
lignum
magnum
Magnuson
esfagno
wingnut

Por outro lado, você pode procurar apenas por essa palavra ou sequência de letras específica e excluir todo o resto. Para isso, você precisa adicionar -w ou –word - regexp à sintaxe. Nesse caso, o comando de exemplo se parece com isso - $ grep -w gnu / usr / share / words .

Nota: Para fins de gramática, alguns dos comandos têm um ponto final no final. Você não precisa desse sinal de pontuação para grep. Exclua-o quando você copiar / colar o comando.

O Grep diferencia maiúsculas de minúsculas?

Todos os comandos grep diferenciam maiúsculas de minúsculas por padrão. Isso significa que o uso dos caracteres minúsculos e maiúsculos faz diferença no próprio comando. No entanto, você pode adicionar - i ( - ignorar - maiúsculas ) à linha de comando e permitir que o sistema procure palavras em maiúsculas e minúsculas.

Por exemplo, seu comando de entrada pode se parecer com este $ grep -i Zebra / usr / share / words . Ele permite que a saída corresponda a qualquer combinação de letras maiúsculas e minúsculas ao pesquisar zebra.

Números de linha

Use a opção –line-number ou apenas -n para determinar o número de linhas com uma sequência que corresponde a um padrão de pesquisa específico. Como resultado, você obtém uma saída padrão com um número de linha na frente.

O comando exato pode ser assim: $ grep -n 10000 / etc / services . Após a execução, a saída fornece todas as correspondências encontradas em 10000 linhas. Confira a amostra abaixo:

10423: ndmp 10000 / tcp
10424: ndmp 10000 / udp

Arquivos em Pastas

Você pode colocar um asterisco atrás de um comando grep em vez de um nome de arquivo. Usando os critérios gnu novamente, o comando se parece com esse $ grep gnu * e a saída lista os arquivos que contêm o gnu . É importante observar que esse tipo de comando retorna uma linha.

Nota: Com grep, uma linha se refere a uma sequência de caracteres que são executados até uma quebra especificada. A menos que você refine a pesquisa, a saída pode conter parágrafos inteiros de informações.

Dê o próximo passo com o Grep

Este guia apenas mostra a superfície do que você pode fazer com o grep. Pode demorar um pouco para obter todas as probabilidades e fins, mas a sintaxe segue um princípio bastante simples. E com alguma prática, você poderá refinar suas pesquisas com perfeição, com ou sem o nome do arquivo.

Como grep sem o nome do arquivo