Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

grep

O programa principal que usaremos para trabalhar com expressões regulares é nosso velho amigo, grep. O nome "grep" é, na verdade, derivado da frase "impressão de expressão regular global", então podemos ver que grep tem algo a ver com expressões regulares. Em essência, grep pesquisa arquivos de texto para o texto de ocorrência que corresponde a uma expressão regular especificada e produz qualquer linha que contenha uma correspondência com a saída padrão.


Até agora, temos usado grep com strings fixas, assim:


[me @ linuxbox ~] $ ls / usr / bin | grep zip

[me @ linuxbox ~] $ ls / usr / bin | grep zip


Isso irá listar todos os arquivos no / usr / bin diretório cujos nomes contêm a substring “zip”.

O grep o programa aceita opções e argumentos desta forma:

grep [opções] regex [Arquivo...]

onde regex é uma expressão regular.

Aqui está uma lista dos comumente usados grep opções:


Tabela 19-1: Opções de grep


Descrição da Opção

Descrição da Opção

-i Ignorar caso. Não faça distinção entre caracteres maiúsculos e minúsculos. Também pode ser especificado --ignorar caso.


imagem

-v Inverter correspondência. Normalmente, grep imprime linhas que contêm uma correspondência.

Esta opção causa grep para imprimir cada linha que não contém uma correspondência. Também pode ser especificado --invert-match.


imagem

-c Imprime o número de correspondências (ou não correspondências se o -v opção também é especificada) em vez das próprias linhas. Também pode ser especificado --contar.


imagem

-l Imprima o nome de cada arquivo que contém uma correspondência em vez das próprias linhas. Também pode ser especificado --arquivos com correspondências.


imagem

-L Como a opção -l, mas imprime apenas os nomes dos arquivos que não contêm correspondências. Também pode ser especificado --files-without- match.


imagem

-n Prefixe cada linha correspondente com o número da linha dentro do arquivo. Também pode ser especificado --line-number.


imagem

-h Para pesquisas de vários arquivos, suprima a saída de nomes de arquivos. Também pode ser especificado --no-nome do arquivo.


imagem


A fim de explorar mais completamente grep, vamos criar alguns arquivos de texto para pesquisar:

grep


[me @ linuxbox ~] $ ls / bin> dirlist-bin.txt [me @ linuxbox ~] $ ls / usr / bin> dirlist-usr-bin.txt [me @ linuxbox ~] $ ls / sbin> dirlist-sbin.txt [me @ linuxbox ~] $ ls / usr / sbin> dirlist-usr-sbin.txt [me @ linuxbox ~] $ ls dirlist * .txt

dirlist-bin.txt dirlist-sbin.txt dirlist-usr-sbin.txt dirlist-usr-bin.txt

[me @ linuxbox ~] $ ls / bin> dirlist-bin.txt [me @ linuxbox ~] $ ls / usr / bin> dirlist-usr-bin.txt [me @ linuxbox ~] $ ls / sbin> dirlist-sbin.txt [me @ linuxbox ~] $ ls / usr / sbin> dirlist-usr-sbin.txt [me @ linuxbox ~] $ ls dirlist * .txt

dirlist-bin.txt dirlist-sbin.txt dirlist-usr-sbin.txt dirlist-usr-bin.txt


Podemos realizar uma pesquisa simples em nossa lista de arquivos, como esta:



[me @ linuxbox ~] $ grep bzip dirlist * .txt

dirlist-bin.txt: bzip2 dirlist-bin.txt: bzip2recover

[me @ linuxbox ~] $ grep bzip dirlist * .txt

dirlist-bin.txt: bzip2 dirlist-bin.txt: bzip2recover


Neste exemplo, grep pesquisa todos os arquivos listados para a string bzip e encontra duas correspondências, ambas no arquivo listadir-bin.txt. Se estivéssemos interessados ​​apenas na lista de arquivos que continham correspondências, e não nas próprias correspondências, poderíamos especificar o -l opção:



[me @ linuxbox ~] $ grep -l bzip dirlist * .txt

listadir-bin.txt

[me @ linuxbox ~] $ grep -l bzip dirlist * .txt

listadir-bin.txt


Por outro lado, se quiséssemos apenas ver uma lista dos arquivos que não continham uma correspondência, poderíamos fazer isso:



[me @ linuxbox ~] $ grep -L bzip dirlist * .txt

lista de diretórios-sbin.txt lista de diretórios-usr-bin.txt lista de diretórios-usr-sbin.txt

[me @ linuxbox ~] $ grep -L bzip dirlist * .txt

lista de diretórios-sbin.txt lista de diretórios-usr-bin.txt lista de diretórios-usr-sbin.txt


Top OS Cloud Computing na OnWorks: