Manuais para a linha de comandos

Man » Manual do grep online - documentação online detalhada para a página de manual do grep

🌍
grep, egrep, fgrep, rgrep - imprime as linhas que correspondem aos padrões

SINTAXE

grep [OPÇÃO]... PADRÕES [ARQUIVO]...
grep [OPÇÃO]... -e PADRÕES ... [ARQUIVO]...
grep [OPÇÃO]... -f ARQUIVO_PADRÃO ... [ARQUIVO]...

DESCRIÇÃO

grep procura padrões em cada ARQUIVO. Na primeira forma da sinopse, que é usada se nenhuma das opções -e ou
-f estiver presente, o primeiro operando PADRÕES é um ou mais padrões separados por caracteres de nova linha, e grep imprime cada linha que corresponde a um padrão. Normalmente, PADRÕES deve ser colocado entre aspas quando grep é usado em um comando de shell.

Um ARQUIVO de “-” representa a entrada padrão. Se nenhum ARQUIVO for fornecido, as pesquisas recursivas examinam o
diretório de trabalho e as pesquisas não recursivas leem a entrada padrão.

O Debian também inclui os programas variantes egrep, fgrep e rgrep. Esses programas são os mesmos que grep -E, grep -F e grep -r, respectivamente. Essas variantes são descontinuadas upstream, mas o Debian as fornece para compatibilidade com versões anteriores. Por razões de portabilidade, é recomendável evitar o uso dos programas variantes e, em vez disso, usar grep com a opção relacionada.

OPÇÕES

Informações Genéricas do Programa

--help Exibe uma mensagem de uso e sai.

-V, --version
Exibe o número da versão do grep e sai.

Sintaxe de Padrão

-E, --extended-regexp
Interpreta PADRÕES como expressões regulares estendidas (EREs, veja abaixo).

-F, --fixed-strings
Interpreta PADRÕES como strings fixas, não como expressões regulares.

-G, --basic-regexp
Interpreta PADRÕES como expressões regulares básicas (BREs, veja abaixo). Este é o padrão.

-P, --perl-regexp
Interpreta PADRÕES como expressões regulares compatíveis com Perl (PCREs). Esta opção é
experimental quando combinada com a opção -z (--null-data) e grep -P pode avisar sobre
recursos não implementados.

Controle de Correspondência

-e PADRÕES, --regexp=PADRÕES
Usa PADRÕES como os padrões. Se esta opção for usada várias vezes ou for combinada com
a opção -f (--file), procura todos os padrões fornecidos. Esta opção pode ser usada para proteger
um padrão que começa com “-”.

-f ARQUIVO, --file=ARQUIVO
Obtém padrões de ARQUIVO, um por linha. Se esta opção for usada várias vezes ou for
combinada com a opção -e (--regexp), procura todos os padrões fornecidos. O arquivo vazio
contém zero padrões e, portanto, não corresponde a nada. Se ARQUIVO for -, lê os padrões da
entrada padrão.

-i, --ignore-case
Ignora as distinções entre maiúsculas e minúsculas nos padrões e nos dados de entrada, de modo que os caracteres que
diferem apenas em maiúsculas e minúsculas correspondam entre si.

--no-ignore-case
Não ignora as distinções entre maiúsculas e minúsculas nos padrões e nos dados de entrada. Este é o padrão.
Esta opção é útil para passar para scripts de shell que já usam -i, para cancelar seus efeitos,
porque as duas opções se sobrepõem.

-v, --invert-match
Inverte o sentido da correspondência, para selecionar linhas que não correspondem.

-w, --word-regexp
Seleciona apenas as linhas que contêm correspondências que formam palavras inteiras. O teste é que a substring correspondente deve estar no início da linha, ou precedida por um caractere não pertencente à palavra. Da mesma forma, deve estar no final da linha ou seguida por um caractere não pertencente à palavra. Os caracteres que pertencem à palavra são letras, dígitos e o sublinhado. Esta opção não tem efeito se -x também for especificada.

-x, --line-regexp
Seleciona apenas as correspondências que correspondem exatamente à linha inteira. Para um padrão de expressão regular, é como colocar o padrão entre parênteses e, em seguida, cercá-lo com ^ e $.

Controle geral da saída

-c, --count
Suprime a saída normal; em vez disso, imprime uma contagem das linhas correspondentes para cada arquivo de entrada. Com a opção -v, --invert-match (veja acima), conta as linhas que não correspondem.

--color[=WHEN], --colour[=WHEN]
Envolve as strings correspondentes (não vazias), as linhas correspondentes, as linhas de contexto, os nomes dos arquivos, os números das linhas, os deslocamentos de bytes e os separadores (para campos e grupos de linhas de contexto) com sequências de escape para exibi-los em cores no terminal. As cores são definidas pela variável de ambiente GREP_COLORS. WHEN é never, always ou auto.

-L, --files-without-match
Suprime a saída normal; em vez disso, imprime o nome de cada arquivo de entrada do qual nenhuma saída seria normalmente impressa.

-l, --files-with-matches
Suprime a saída normal; em vez disso, imprime o nome de cada arquivo de entrada do qual a saída seria normalmente impressa. A leitura de cada arquivo de entrada é interrompida após a primeira correspondência.

-m NUM, --max-count=NUM
Interrompe a leitura de um arquivo após NUM linhas correspondentes. Se NUM for zero, grep para imediatamente sem ler a entrada. Um NUM de -1 é tratado como infinito e grep não para; este é o padrão. Se a entrada for a entrada padrão de um arquivo regular, e NUM linhas correspondentes forem impressas, grep garante que a entrada padrão seja posicionada logo após a última linha correspondente antes de sair, independentemente da presença de linhas de contexto finais. Isso permite que um processo de chamada retome uma pesquisa. Quando grep para após NUM linhas correspondentes, ele imprime quaisquer linhas de contexto finais. Quando a opção -c ou --count também for usada, grep não imprime uma contagem maior que NUM. Quando a opção -v ou --invert-match também for usada, grep para após imprimir NUM linhas que não correspondem.

-o, --only-matching
Imprime apenas as partes correspondentes (não vazias) de uma linha correspondente, com cada parte em uma linha de saída separada.

-q, --quiet, --silent
Silencioso; não escreve nada na saída padrão. Sai imediatamente com status zero se alguma correspondência for encontrada, mesmo que um erro tenha sido detectado. Veja também a opção -s ou --no-messages.

-s, --no-messages

Suprime mensagens de erro sobre arquivos inexistentes ou ilegíveis.

Controle de Prefixo de Linha de Saída

-b, --byte-offset

Imprime o deslocamento de byte (base 0) dentro do arquivo de entrada antes de cada linha de saída. Se -o (--only-matching) for especificado, imprime o deslocamento da parte correspondente.

-H, --with-filename

Imprime o nome do arquivo para cada correspondência. Este é o padrão quando há mais de um arquivo para pesquisar. Esta é uma extensão GNU.

-h, --no-filename

Suprime o prefixo dos nomes de arquivos na saída. Este é o padrão quando há apenas um arquivo (ou apenas entrada padrão) para pesquisar.

--label=LABEL

Exibe a entrada que vem da entrada padrão como se viesse do arquivo LABEL. Isso pode ser útil para comandos que transformam o conteúdo de um arquivo antes de pesquisar, por exemplo, gzip -cd foo.gz | grep --label=foo -H 'algum padrão'. Veja também a opção -H.

-n, --line-number

Prefixa cada linha de saída com o número da linha (base 1) dentro de seu arquivo de entrada.

-T, --initial-tab

Certifique-se de que o primeiro caractere do conteúdo real da linha esteja em um caractere de tabulação, para que o alinhamento das tabulações pareça normal. Isso é útil com opções que prefixam sua saída ao conteúdo real: -H, -n e -b. A fim de melhorar a probabilidade de que as linhas de um único arquivo comecem todas na mesma coluna, isso também faz com que o número da linha e o deslocamento de byte (se presentes) sejam impressos em um campo de largura mínima.

-Z, --null

Emite um byte zero (o caractere ASCII NUL) em vez do caractere que normalmente segue um nome de arquivo. Por exemplo, grep -lZ emite um byte zero após cada nome de arquivo em vez da nova linha usual. Esta opção torna a saída inequívoca, mesmo na presença de nomes de arquivos que contêm caracteres incomuns, como novas linhas. Esta opção pode ser usada com comandos como find -print0, perl -0, sort -z e xargs -0 para processar nomes de arquivos arbitrários, mesmo aqueles que contêm caracteres de nova linha.

Controle de Linha de Contexto

-A NUM, --after-context=NUM

Imprime NUM linhas de contexto de rastreamento após as linhas correspondentes. Coloca uma linha contendo um separador de grupo (--) entre grupos contíguos de correspondências. Com a opção -o ou --only-matching, isso não tem efeito e um aviso é dado.

-B NUM, --before-context=NUM

Imprime NUM linhas de contexto de liderança antes das linhas correspondentes. Coloca uma linha contendo um separador de grupo (--) entre grupos contíguos de correspondências. Com a opção -o ou --only-matching, isso não tem efeito e um aviso é dado.

-C NUM, -NUM, --context=NUM

Imprime NUM linhas de contexto de saída. Coloca uma linha contendo um separador de grupo (--) entre grupos contíguos de correspondências. Com a opção -o ou --only-matching, isso não tem efeito e um aviso é dado.

--group-separator=SEP

Quando -A, -B ou -C estão em uso, imprime SEP em vez de -- entre grupos de linhas.

--no-group-separator

Quando -A, -B ou -C estão em uso, não imprime um separador entre grupos de linhas.


Seleção de Arquivos e Diretórios

-a, --text
Processa um arquivo binário como se fosse texto; isso é equivalente à opção --binary-files=text.

--binary-files=TYPE
Se os dados ou metadados de um arquivo indicarem que o arquivo contém dados binários, assume que o arquivo é do tipo TYPE. Bytes não textuais indicam dados binários; estes são bytes de saída incorretamente codificados para o locale atual ou bytes de entrada nulos quando a opção -z não é fornecida.

Por padrão, TYPE é binary, e grep suprime a saída após a descoberta de dados binários de entrada nulos e suprime as linhas de saída que contêm dados incorretamente codificados. Quando alguma saída é suprimida, grep adiciona uma mensagem ao erro padrão indicando que um arquivo binário corresponde.

Se TYPE for without-match, quando grep descobrir dados binários de entrada nulos, ele assume que o restante do arquivo não corresponde; isso é equivalente à opção -I.

Se TYPE for text, grep processa um arquivo binário como se fosse texto; isso é equivalente à opção -a.

Quando o tipo é binary, grep pode tratar bytes não textuais como terminadores de linha, mesmo sem a opção -z. Isso significa que escolher binary versus text pode afetar se um padrão corresponde a um arquivo. Por exemplo, quando o tipo é binary, o padrão q$ pode corresponder a q seguido imediatamente por um byte nulo, mesmo que isso não corresponda quando o tipo é text. Por outro lado, quando o tipo é binary, o padrão . (ponto) pode não corresponder a um byte nulo.

Aviso: a opção -a pode gerar saída binária, o que pode ter efeitos colaterais desagradáveis se a saída for um terminal e se o driver do terminal interpretar parte dela como comandos. Por outro lado, ao ler arquivos cujas codificações de texto são desconhecidas, pode ser útil usar -a ou definir LC_ALL='C' no ambiente, a fim de encontrar mais correspondências, mesmo que as correspondências não sejam seguras para exibição direta.

-D ACTION, --devices=ACTION
Se um arquivo de entrada for um dispositivo, FIFO ou socket, use ACTION para processá-lo. Por padrão, ACTION é read, o que significa que os dispositivos são lidos como se fossem arquivos comuns. Se ACTION for skip, os dispositivos são ignorados silenciosamente.

-d ACTION, --directories=ACTION
Se um arquivo de entrada for um diretório, use ACTION para processá-lo. Por padrão, ACTION é read, ou seja, leia os diretórios como se fossem arquivos comuns. Se ACTION for skip, ignore os diretórios silenciosamente. Se ACTION for recurse, leia todos os arquivos em cada diretório, recursivamente, seguindo os links simbólicos apenas se estiverem na linha de comando. Isso é equivalente à opção -r.

--exclude=GLOB
Ignore qualquer arquivo da linha de comando cujo nome de arquivo termine com um padrão que corresponda ao padrão GLOB, usando correspondência de curinga; um sufixo de nome é o nome inteiro ou uma parte final que começa com um caractere diferente de barra (/) no nome. Ao pesquisar recursivamente, ignore qualquer subarquivo cujo nome base corresponda a GLOB; o nome base é a parte após a última barra. Um padrão pode usar *, ?, e [...] como curingas, e \ para citar um curinga ou caractere de barra literalmente.

--exclude-from=ARQUIVO
Ignora arquivos cujo nome base corresponda a qualquer um dos padrões de nome de arquivo lidos do ARQUIVO (usando correspondência de curinga conforme descrito em --exclude).

--exclude-dir=PADRÃO
Ignora qualquer diretório na linha de comando cujo sufixo de nome corresponda ao padrão PADRÃO. Ao pesquisar recursivamente, ignora qualquer subdiretório cujo nome base corresponda a PADRÃO. Ignora quaisquer barras diagonais finais redundantes em PADRÃO.

-I
Processa um arquivo binário como se não contivesse dados correspondentes; isso é equivalente à opção --binary-files=without-match.

--include=PADRÃO
Pesquisa apenas arquivos cujo nome base corresponda ao PADRÃO (usando correspondência de curinga conforme descrito em --exclude). Se opções --include e --exclude contraditórias forem fornecidas, a última correspondente será a que tiver efeito. Se nenhuma das opções --include ou --exclude corresponder, um arquivo será incluído, a menos que a primeira dessas opções seja --include.

-r, --recursive
Lê todos os arquivos em cada diretório, recursivamente, seguindo links simbólicos apenas se eles estiverem na linha de comando. Observe que, se nenhum operando de arquivo for fornecido, grep pesquisa o diretório de trabalho. Isso é equivalente à opção -d recurse.

-R, --dereference-recursive
Lê todos os arquivos em cada diretório, recursivamente. Segue todos os links simbólicos, ao contrário de -r.

Outras opções

--line-buffered
Usa buffer de linha na saída. Isso pode causar uma penalidade de desempenho.

-U, --binary
Trata os arquivos como binários. Por padrão, no MS-DOS e MS-Windows, grep tenta determinar se um arquivo é texto ou binário, conforme descrito para a opção --binary-files. Se grep decidir que o arquivo é um arquivo de texto, ele remove os caracteres CR do conteúdo original do arquivo (para fazer com que as expressões regulares com ^ e $ funcionem corretamente). Especificar -U anula essa tentativa, fazendo com que todos os arquivos sejam lidos e passados para o mecanismo de correspondência literalmente; se o arquivo for um arquivo de texto com pares CR/LF no final de cada linha, isso fará com que algumas expressões regulares falhem. Esta opção não tem efeito em outras plataformas que não MS-DOS e MS-Windows.

-z, --null-data
Trata os dados de entrada e saída como sequências de linhas, cada uma terminada por um byte zero (o caractere ASCII NUL) em vez de uma nova linha. Como a opção -Z ou --null, esta opção pode ser usada com comandos como sort -z para processar nomes de arquivo arbitrários.

EXPRESSÕES REGULARES

Uma expressão regular é um padrão que descreve um conjunto de strings. As expressões regulares são construídas de forma análoga às expressões aritméticas, usando vários operadores para combinar expressões menores.

grep entende três versões diferentes de sintaxe de expressão regular: "básica" (BRE), "estendida" (ERE) e "perl" (PCRE). Em GNU grep, as expressões regulares básicas e estendidas são apenas diferentes notações para a mesma funcionalidade de correspondência de padrões. Em outras implementações, as expressões regulares básicas são normalmente menos poderosas do que as estendidas, embora, ocasionalmente, seja o contrário. A seguinte descrição se aplica a expressões regulares estendidas; as diferenças para expressões regulares básicas são resumidas posteriormente. As expressões regulares compatíveis com Perl têm funcionalidade diferente e são documentadas em pcre2syntax(3) e pcre2pattern(3), mas funcionam apenas se o suporte a PCRE estiver habilitado.

Os blocos de construção fundamentais são as expressões regulares que correspondem a um único caractere. A maioria dos caracteres, incluindo todas as letras e dígitos, são expressões regulares que correspondem a si mesmos. Qualquer metacaractere com significado especial pode ser precedido por uma barra invertida para escapar e evitar o seu significado especial.

O ponto . corresponde a qualquer caractere único. Não está especificado se ele corresponde a um erro de codificação.

Classes de caracteres e expressões entre colchetes

Uma expressão entre colchetes é uma lista de caracteres delimitada por [ e ]. Ela corresponde a qualquer caractere único nessa lista. Se o primeiro caractere da lista for o acento circunflexo ^, então ele corresponde a qualquer caractere que não esteja na lista; não está especificado se ele corresponde a um erro de codificação. Por exemplo, a expressão regular [0123456789] corresponde a qualquer dígito único.

Dentro de uma expressão entre colchetes, uma expressão de intervalo consiste em dois caracteres separados por um hífen. No locale C padrão, ela corresponde a qualquer caractere único que apareça entre os dois caracteres na ordem ASCII, inclusive. Por exemplo, [a-d] é equivalente a [abcd]. Em outros locales, o comportamento não é especificado: [a-d] pode ser equivalente a [abcd] ou [aBbCcDd] ou alguma outra expressão entre colchetes, ou pode não corresponder a nenhum caractere, ou o conjunto de caracteres que ele corresponde pode ser errático, ou pode ser inválido. Para obter a interpretação tradicional de expressões entre colchetes, você pode usar o locale C definindo a variável de ambiente LC_ALL para o valor C.

Finalmente, certas classes de caracteres nomeadas são predefinidas dentro de expressões entre colchetes, conforme a seguir. Seus nomes são autoexplicativos, e eles são [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] e [:xdigit:]. Por exemplo, [[:alnum:]] significa a classe de caracteres de números e letras no locale atual. No locale C e na codificação de conjunto de caracteres ASCII, isso é o mesmo que [0-9A-Za-z]. (Observe que os colchetes nesses nomes de classe fazem parte dos nomes simbólicos e devem ser incluídos além dos colchetes que delimitam a expressão entre colchetes.) A maioria dos metacaracteres perde seu significado especial dentro de expressões entre colchetes. Para incluir um ] literal, coloque-o primeiro na lista. Da mesma forma, para incluir um ^ literal, coloque-o em qualquer lugar, exceto no primeiro. Finalmente, para incluir um - literal, coloque-o por último.

Ancoragem

O acento circunflexo ^ e o sinal de dólar $ são metacaracteres que correspondem, respectivamente, à string vazia no início e no final de uma linha.

O caractere de barra invertida e expressões especiais

Os símbolos \< e \> correspondem, respectivamente, à string vazia no início e no final de uma palavra. O símbolo \b corresponde à string vazia na borda de uma palavra, e \B corresponde à string vazia, desde que não esteja na borda de uma palavra. O símbolo \w é um sinônimo para [_[:alnum:]] e \W é um sinônimo para [^_[:alnum:]].


Repetição

Uma expressão regular pode ser seguida por um dos seguintes operadores de repetição: ? O item precedente é opcional e é correspondido no máximo uma vez. * O item precedente será correspondido zero ou mais vezes. + O item precedente será correspondido uma ou mais vezes. {n} O item precedente é correspondido exatamente n vezes. {n,} O item precedente é correspondido n ou mais vezes. {,m} O item precedente é correspondido no máximo m vezes. Esta é uma extensão GNU. {n,m} O item precedente é correspondido pelo menos n vezes, mas não mais do que m vezes.

Concatenação

Duas expressões regulares podem ser concatenadas; a expressão regular resultante corresponde a qualquer string formada pela concatenação de duas substrings que correspondem, respectivamente, às expressões concatenadas.

Alternância

Duas expressões regulares podem ser unidas pelo operador de infixo |; a expressão regular resultante corresponde a qualquer string que corresponda a qualquer uma das expressões alternativas.

Precedência

A repetição tem precedência sobre a concatenação, que, por sua vez, tem precedência sobre a alternância. Uma expressão inteira pode ser incluída em parênteses para substituir essas regras de precedência e formar um subexpressão.

Referências inversas e subexpressões

A referência inversa \n, onde n é um único dígito, corresponde à substring correspondida anteriormente pela n-ésima subexpressão entre parênteses da expressão regular.

Expressões regulares básicas vs. estendidas

Em expressões regulares básicas, os metacaracteres ?, +, {, |, (, e ) perdem seu significado especial; em vez disso, use as versões com barra invertida \?, +, {, |, (, e ).

STATUS DE SAÍDA

Normalmente, o status de saída é 0 se uma linha for selecionada, 1 se nenhuma linha for selecionada e 2 se ocorrer um erro. No entanto, se as opções -q ou --quiet ou --silent forem usadas e uma linha for selecionada, o status de saída será 0, mesmo que ocorra um erro.

AMBIENTE

O comportamento de grep é afetado pelas seguintes variáveis de ambiente.

O local para a categoria LC_foo é especificado examinando as três variáveis de ambiente LC_ALL, LC_foo, LANG, nesta ordem. A primeira dessas variáveis que estiver definida especifica o local. Por exemplo, se LC_ALL não estiver definida, mas LC_MESSAGES estiver definida como pt_BR, o local em português brasileiro será usado para a categoria LC_MESSAGES. O local C é usado se nenhuma dessas variáveis de ambiente estiver definida, se o catálogo de local não estiver instalado ou se grep não foi compilado com suporte a idiomas nacionais (NLS). O comando do shell locale -a lista os locais que estão atualmente disponíveis.

GREP_COLORS

Controla como a opção --color destaca a saída. Seu valor é uma lista separada por dois pontos de capacidades que tem como padrão ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 com as capacidades booleanas rv e ne omitidas (isto é, falsas). As capacidades suportadas são as seguintes.


sl= SGR substring para linhas inteiras selecionadas (ou seja, linhas correspondentes quando a opção de linha de comando -v é omitida, ou linhas não correspondentes quando -v é especificada). No entanto, se a capacidade booleana rv e a opção de linha de comando -v forem ambas especificadas, ela se aplica a linhas de contexto correspondentes. O padrão é vazio (ou seja, o par de cores padrão do terminal).

cx= SGR substring para linhas de contexto inteiras (ou seja, linhas não correspondentes quando a opção de linha de comando -v é omitida, ou linhas correspondentes quando -v é especificada). No entanto, se a capacidade booleana rv e a opção de linha de comando -v forem ambas especificadas, ela se aplica a linhas não correspondentes selecionadas. O padrão é vazio (ou seja, o par de cores padrão do terminal).

rv  Valor booleano que inverte (troca) os significados das capacidades sl= e cx= quando a opção de linha de comando -v é especificada. O padrão é falso (ou seja, a capacidade é omitida).

mt=01;31
SGR substring para texto não vazio correspondente em qualquer linha correspondente (ou seja, uma linha selecionada quando a opção de linha de comando -v é omitida, ou uma linha de contexto quando -v é especificada). Definir isso é equivalente a definir ms= e mc= de uma vez para o mesmo valor. O padrão é um texto em negrito vermelho sobre o fundo da linha atual.

ms=01;31
SGR substring para texto não vazio correspondente em uma linha selecionada. (Isso é usado apenas quando a opção de linha de comando -v é omitida.) O efeito da capacidade sl= (ou cx= se rv) permanece ativo quando isso ocorre. O padrão é um texto em negrito vermelho sobre o fundo da linha atual.

mc=01;31
SGR substring para texto não vazio correspondente em uma linha de contexto. (Isso é usado apenas quando a opção de linha de comando -v é especificada.) O efeito da capacidade cx= (ou sl= se rv) permanece ativo quando isso ocorre. O padrão é um texto em negrito vermelho sobre o fundo da linha atual.

fn=35   SGR substring para nomes de arquivo que precedem qualquer conteúdo da linha. O padrão é um texto magenta sobre o fundo padrão do terminal.

ln=32   SGR substring para números de linha que precedem qualquer conteúdo da linha. O padrão é um texto verde sobre o fundo padrão do terminal.

bn=32   SGR substring para deslocamentos de byte que precedem qualquer conteúdo da linha. O padrão é um texto verde sobre o fundo padrão do terminal.

se=36   SGR substring para separadores que são inseridos entre campos de linha selecionados (:), entre campos de linha de contexto (-) e entre grupos de linhas adjacentes quando um contexto diferente de zero é especificado (--). O padrão é um texto ciano sobre o fundo padrão do terminal.

ne  Valor booleano que impede a limpeza até o final da linha usando Erase in Line (EL) para a direita (\33[K) cada vez que um item colorido termina. Isso é necessário em terminais nos quais EL não é suportado. Caso contrário, é útil em terminais para os quais a capacidade booleana terminfo back_color_erase (bce) não se aplica, quando as cores de destaque escolhidas não afetam o fundo ou quando EL é muito lento ou causa muito brilho. O padrão é falso (ou seja, a capacidade é omitida).

Observe que as funcionalidades booleanas não possuem a parte =.... Elas são omitidas (ou seja, false por padrão) e tornam-se true quando especificadas.

Consulte a seção "Select Graphic Rendition (SGR)" na documentação do terminal de texto usado para obter os valores permitidos e seus significados como atributos de caractere. Esses valores de substring são inteiros em representação decimal e podem ser concatenados com ponto e vírgula. O grep se encarrega de montar o resultado em uma sequência SGR completa (\33[...m). Valores comuns para concatenar incluem 1 para negrito, 4 para sublinhado, 5 para piscante, 7 para inverso, 39 para cor de primeiro plano padrão, 30 a 37 para cores de primeiro plano, 90 a 97 para cores de primeiro plano no modo de 16 cores, 38;5;0 a 38;5;255 para cores de primeiro plano nos modos de 88 cores e 256 cores, 49 para cor de fundo padrão, 40 a 47 para cores de fundo, 100 a 107 para cores de fundo no modo de 16 cores e 48;5;0 a 48;5;255 para cores de fundo nos modos de 88 cores e 256 cores.

^ C_ALL, LC_COLLATE, LANG Essas variáveis especificam o local para a categoria LC_COLLATE, que determina a sequência de classificação usada para interpretar expressões de intervalo como [a-z].

^ C_ALL, LC_CTYPE, LANG Essas variáveis especificam o local para a categoria LC_CTYPE, que determina o tipo de caracteres, por exemplo, quais caracteres são espaços em branco. Esta categoria também determina a codificação de caracteres, ou seja, se o texto é codificado em UTF-8, ASCII ou outra codificação. No local C ou POSIX, todos os caracteres são codificados como um único byte e cada byte é um caractere válido.

^ C_ALL, LC_MESSAGES, LANG Essas variáveis especificam o local para a categoria LC_MESSAGES, que determina o idioma que o grep usa para as mensagens. O local C padrão usa mensagens em inglês americano.

^ OSIXLY_CORRECT Se definido, o grep se comporta conforme o POSIX exige; caso contrário, o grep se comporta mais como outros programas GNU. O POSIX exige que as opções que seguem os nomes dos arquivos devem ser tratadas como nomes de arquivos; por padrão, essas opções são movidas para o início da lista de operandos e são tratadas como opções. Além disso, o POSIX exige que as opções não reconhecidas sejam diagnosticadas como "ilegais", mas como elas não são realmente ilegais, o padrão é diagnosticá-las como "inválidas".

NOTAS

Esta página do manual é mantida apenas esporadicamente; a documentação completa geralmente está mais atualizada.

DIREITOS AUTORAIS

Copyright 1998–2000, 2002, 2005–2025 Free Software Foundation, Inc.

Este é um software livre; consulte o código-fonte para as condições de cópia. Não há GARANTIA; nem mesmo para COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO.


BUGS

Relatar Bugs

Envie relatórios de bugs para o endereço de e-mail de relatórios de bugs. Um arquivo de e-mail e um rastreador de bugs estão disponíveis.

Bugs Conhecidos

Grandes contagens de repetição na construção {n,m} podem fazer com que o grep use muita memória. Além disso, certas outras expressões regulares obscuras exigem tempo e espaço exponenciais e podem fazer com que o grep fique sem memória.

As referências retroativas são muito lentas e podem exigir tempo exponencial.

EXEMPLO

O exemplo a seguir exibe a localização e o conteúdo de qualquer linha que contenha "f" e termine em ".c", em todos os arquivos no diretório atual cujos nomes contenham "g" e terminem em ".h". A opção -n exibe os números das linhas, a opção -- trata as expansões de "*g*.h" que começam com "-" como nomes de arquivos, não como opções, e o arquivo vazio /dev/null faz com que os nomes dos arquivos sejam exibidos, mesmo que apenas um nome de arquivo tenha o formato "*g*.h".

$ grep -n -- 'f.*\.c$' *g*.h /dev/null
argmatch.h:1:/* definições e protótipos para argmatch.c

A única linha que corresponde é a linha 1 de argmatch.h. Observe que a sintaxe de expressão regular usada no padrão difere da sintaxe de globbing que o shell usa para corresponder a nomes de arquivos.

VEJA TAMBÉM

Páginas de Manual Regulares

awk(1), cmp(1), diff(1), find(1), perl(1), sed(1), sort(1), xargs(1), read(2), pcre2(3), pcre2syntax(3), pcre2pattern(3), terminfo(5), glob(7), regex(7)

Documentação Completa

Um manual completo está disponível. Se os programas info e grep estiverem devidamente instalados em seu site, o comando

info grep

deve fornecer acesso ao manual completo.