NOME
grep, egrep, fgrep, rgrep - emite linhas que coincidem com padrões
SINOPSE
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. PADRÕES é um ou mais padrões separados por caracteres de nova linha e grep emite cada linha que coincide com um padrão. Normalmente, PADRÕES deve ser colocado entre aspas quando grep é usado em um comando shell.
Um ARQUIVO de “-” significa 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.
Além disso, os programas variantes egrep, fgrep e rgrep são os mesmos que grep -E, grep -F e grep -r, respectivamente. Essas variantes foram descontinuadas, mas são fornecidas para compatibilidade com versões anteriores.
OPÇÕES
Informações genéricas do programa
--help |
Emite uma mensagem de uso e sai. |
-V, --version
Mostra o número de 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 textos fixos, não como expressões regulares.
-G, --basic-regexp
Interpreta PADRÕES como expressões regulares básicas (BREs, veja abaixo). Esse é o padrão.
-P, --perl-regexp
Interpreta PADRÕES como expressões regulares compatíveis com Perl (PCREs). Essa opção é experimental quando combinada com a opção -z (--null-data) e grep -P pode avisar sobre recursos não implementados.
Controle de
coincidências
-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 começando 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 coincide com nada.
-i, --ignore-case
Ignora as diferenças entre maiúsculas e minúsculas nos padrões e nos dados de entrada, para que os caracteres que diferem apenas no caso de coincidirem um ao outro.
--no-ignore-case
Não ignora as diferenças entre maiúsculas e minúsculas nos padrões e nos dados de entrada. Esse é o padrão. Esta opção é útil para passar para shell scripts que já usam -i, para cancelar seus efeitos porque as duas opções se substituem.
-v, --invert-match
Inverte o sentido de coincidência, para selecionar linhas que não coincidem.
-w, --word-regexp
Seleciona apenas as linhas que coincidem formando palavras inteiras. O teste é que a parte de texto coincidente deve estar no início da linha ou precedida por um caractere que não seja de palavra. Da mesma forma, ele deve estar no final da linha ou ser seguido por um caractere que não seja de palavra. Os caracteres constituintes da palavra são letras, dígitos e o sublinhado. Esta opção não tem efeito se -x também estiver especificado.
-x, --line-regexp
Seleciona apenas as partes de texto que coincidem exatamente com a linha inteira. Para um padrão de expressão regular, é como colocar parênteses no padrão e depois envolvê-lo com ^ e $.
-y |
Sinônimo obsoleto para -i. |
Controle
geral de saída
-c, --count
Inibe saída normal; em vez disso, emite uma contagem de linhas que coincidam a cada arquivo de entrada. Com a opção -v, --invert-match (veja acima), conta linhas que não coincidem.
--color[=QUANDO], --colour[=QUANDO]
Coloca os textos que coincidem (não vazios), as linhas que coincidem, as linhas de contexto, os nomes dos arquivos, os números das linhas, os posições de bytes e os separadores (para campos e grupos de linhas de contexto) com sequências de escape para exibi-las em cores no terminal. As cores são definidas pela variável de ambiente GREP_COLORS. A variável de ambiente obsoleta GREP_COLOR ainda é suportada, mas sua configuração não tem prioridade. QUANDO é never, always ou auto.
-L, --files-without-match
Inibe saída normal; em vez disso, emite o nome de cada arquivo de entrada do qual normalmente nenhuma saída seria emitida. A varredura será interrompida na primeira coincidência.
-l, --files-with-matches
Inibe saída normal; em vez disso, emite o nome de cada arquivo de entrada do qual normalmente alguma saída seria emitida. A varredura será interrompida na primeira coincidência.
-m NÚM, --max-count=NÚM
Interrompe a leitura um arquivo depois de NÚM ocorrências. Se a entrada for uma entrada padrão de um arquivo comum e NÚM ocorrências forem exibidas, grep garantirá que a entrada padrão seja posicionada logo após a última ocorrência antes de sair, independentemente da presença de linhas de contexto à direita. Isso permite que um processo de chamada retome uma pesquisa. Quando grep interrompe após NÚM ocorrências, ele exibe quaisquer linhas de contexto ao final. Quando a opção -c ou --count também é usada, grep não gera uma contagem maior que NÚM. Quando a opção -v ou --invert-match também é usada, grep interrompe após a saída de NÚM linhas não coincidentes.
-o, --only-matching
Emite apenas as partes coincidentes (não vazias) de uma ocorrência, com cada uma dessas partes em uma linha de saída separada.
-q, --quiet, --silent
Quieto; não escreve nada na saída padrão. Sai imediatamente com o status zero se alguma coincidente for encontrada, mesmo que um erro tenha sido detectado. Consulte também a opção -s ou --no-messages.
-s, --no-messages
Inibe mensagens de erro sobre arquivos inexistentes ou ilegíveis.
Controle de
prefixo de linha de saída
-b, --byte-offset
Emite a posição de byte baseada em 0 no arquivo de entrada antes de cada linha de saída. Se -o (--only-matching) for especificado, emite a posição da própria parte coincidente.
-H, --with-filename
Emite o nome do arquivo para cada coincidência. Esse é o padrão quando há mais de um arquivo para pesquisar.
-h, --no-filename
Inibe a prefixação dos nomes dos arquivos na saída. Esse é o padrão quando há apenas um arquivo (ou apenas entrada padrão) para pesquisar.
--label=RÓTULO
Exibe a entrada proveniente da entrada padrão como uma entrada proveniente do RÓTULO de arquivo. 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 com base em 1 em seu arquivo de entrada.
-T, --initial-tab
Verifica se o primeiro caractere do conteúdo real da linha está em uma parada de tabulação, para que o alinhamento das tabulações pareça normal. Isso é útil com opções que prefixam sua saída para o conteúdo real: -H, -n e -b. Para aumentar a probabilidade de que as linhas de um único arquivo sejam iniciadas na mesma coluna, isso também faz com que o número da linha e a posição de bytes (se houver) sejam emitidos em uma largura de campo de tamanho mínimo.
-u, --unix-byte-offsets
Relata posições de bytes no estilo Unix. Essa opção faz com que grep relate posições de bytes como se o arquivo fosse um arquivo de texto no estilo Unix, ou seja, com caracteres CR removidos. Isso produzirá resultados idênticos aos da execução de grep em uma máquina Unix. Esta opção não tem efeito, a menos que a opção -b também seja usada; não tem efeito em plataformas diferentes de MS-DOS e MS-Windows.
-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 gera um byte zero após cada nome de arquivo, em vez da nova linha usual. Essa opção torna a saída inequívoca, mesmo na presença de nomes de arquivos contendo caracteres incomuns, como novas linhas. Essa 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 NÚM,
--after-context=NÚM
Emite NÚM linhas de contexto à direita após as ocorrências. Coloca uma linha que contém um separador de grupo (--) entre grupos contíguos de coincidências. Com a opção -o ou --only-matching, isso não tem efeito e um aviso é dado.
-B NÚM, --before-context=NÚM
Emite NÚM linhas de contexto no início antes das ocorrências. Coloca uma linha que contém um separador de grupo (--) entre grupos contíguos de coincidências. Com a opção -o ou --only-matching, isso não tem efeito e um aviso é dado.
-C NÚM, -NÚM, --context=NÚM
Emite NÚM linhas de saída do contexto. Coloca uma linha que contém um separador de grupo (--) entre grupos contíguos de coincidências. Com a opção -o ou --only-matching, isso não tem efeito e um aviso é dado.
Seleção
de arquivo e diretório
-a, --text
Processa um arquivo binário como se fosse texto; isso é equivalente à opção --binary-files=text.
--binary-files=TIPO
Se os dados ou metadados de um arquivo indicarem que o arquivo contém dados binários, supõe que o arquivo seja do tipo TIPO. Bytes sem texto indicam dados binários; esses são bytes de saída codificados incorretamente para o código do idioma atual ou bytes de entrada nulos quando a opção -z não é fornecida.
Por padrão, TIPO é binary e grep inibe a saída após a descoberta de dados binários de entrada nula e inibe linhas de saída que contêm dados codificados incorretamente. Quando alguma saída é inibida, grep segue qualquer saída com uma mensagem de uma linha dizendo que um arquivo binário coincide.
Se TIPO for without-match, quando grep descobre dados binários de entrada nula, ele presume que o restante do arquivo não coincide; isso é equivalente à opção -I.
Se TIPO for text, grep processa um arquivo binário como se fosse texto; isso é equivalente à opção -a.
Quando tipo é binary, grep pode tratar bytes, que não sejam de texto, como terminadores de linha, mesmo sem a opção -z. Isso significa que escolher binary em vez de text pode afetar se um padrão coincide com um arquivo. Por exemplo, quando tipo é binary, o padrão q$ might coincide com q imediatamente seguido por um byte nulo, mesmo que isso não coincida quando tipo é text. Por outro lado, quando tipo é binary, o padrão . (ponto) pode não coincidir a um byte nulo.
Aviso: A opção -a pode gerar lixo binário, que pode ter efeitos colaterais desagradáveis se a saída for um terminal e se o driver do terminal interpretar alguns deles 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, para encontrar ocorrências, mesmo que estas não sejam seguras para exibição direta.
-D AÇÃO, --devices=AÇÃO
Se um arquivo de entrada for um dispositivo, FIFO ou soquete, usa AÇÃO para processá-lo. Por padrão, AÇÃO é read, o que significa que os dispositivos são lidos como se fossem arquivos comuns. Se AÇÃO for skip, os dispositivos serão ignorados silenciosamente.
-d AÇÃO, --directories=AÇÃO
Se um arquivo de entrada for um diretório, usa AÇÃO para processá-lo. Por padrão, AÇÃO é read, ou seja, lê os diretórios como se fossem arquivos comuns. Se AÇÃO for skip, pula silenciosamente os diretórios. Se AÇÃO for recurse, lê 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
Pula qualquer arquivo de linha de comando com um sufixo de nome que coincida com o padrão GLOB, usando coincidência de curinga; um sufixo de nome é o nome inteiro ou uma parte à direita que começa com um caractere sem barra imediatamente após uma barra (/) no nome. Ao pesquisar recursivamente, pula qualquer subarquivo cujo nome base coincida com GLOB; o nome base é a parte após a última barra. Um padrão pode usar *, ? e [...] como curingas e \ para colocar entre aspas um caractere curinga ou barra invertida literalmente.
--exclude-from=ARQUIVO
Ignora arquivos cujo nome base coincide com qualquer um dos globs de nome de arquivo lidos em ARQUIVO (usando a coincidência curinga conforme descrito em --exclude).
--exclude-dir=GLOB
Pula qualquer diretório da linha de comandos com um sufixo de nome que coincida com o padrão GLOB. Ao pesquisar recursivamente, pula qualquer subdiretório cujo nome base coincida com GLOB. Ignora as barras finais redundantes em GLOB.
-I |
Processa um arquivo binário como se não contivesse dados de coincidência isso é equivalente à opção --binary-files=without-match. |
--include=GLOB
Pesquisa apenas arquivos cujo nome base coincida com GLOB (usando a coincidência curinga conforme descrito em --exclude).
-r, --recursive
Lê todos os arquivos em cada diretório, recursivamente, seguindo os links simbólicos apenas se estiverem na linha de comando. Observe que, se nenhum operando de arquivo for fornecido, o grep pesquisará 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, em MS-DOS e MS-Windows, grep calcula 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 expressões regulares com ^ e $ funcionarem corretamente). A especificação de -U anula essas suposições, fazendo com que todos os arquivos sejam lidos e passados para o mecanismo de coincidê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 plataformas diferentes do 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 arquivos arbitrários.
EXPRESSÕES REGULARES
Uma expressão regular é um padrão que descreve um conjunto de textos. Expressões regulares são construídas analogamente às expressões aritméticas, usando vários operadores para combinar expressões menores.
grep compreende três versões diferentes da sintaxe de expressão regular: “básica” (BRE), “estendida” (ERE) e “perl” (PCRE). No GNU grep, não há diferença na funcionalidade disponível entre sintaxes básica e estendida. Em outras implementações, expressões regulares básicas são menos poderosas. A descrição a seguir se aplica a expressões regulares estendidas; as diferenças para expressões regulares básicas são resumidas posteriormente. Expressões regulares compatíveis com Perl fornecem funcionalidade adicional e estão documentadas em pcresyntax(3) e pcrepattern(3), mas funcionam apenas se PCRE estiver disponível no sistema.
Os blocos de construção fundamentais são as expressões regulares que coincidem com um único caractere. A maioria dos caracteres, incluindo todas as letras e dígitos, são expressões regulares coincidentes. Qualquer metacaractere com significado especial pode ser citado precedendo-o com uma barra invertida.
O ponto . coincide com qualquer caractere único. Não é especificado se coincide com um erro de codificação.
Classes de
caracteres e expressões entre colchetes
Uma expressão entre colchetes é uma
lista de caracteres entre [ e ]. Coincide com
qualquer caractere único nessa lista. Se o primeiro
caractere da lista for o sinal de intercalação
^, ele coincidirá com qualquer caractere que
não esteja na lista; não é
especificado se coincide com um erro de
codificação. Por exemplo, a expressão
regular [0123456789] coincide com 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. Coincide com qualquer caractere único que classifique entre os dois caracteres, inclusive, usando a sequência de agrupamento e o conjunto de caracteres da localidade. Por exemplo, no código de idioma C padrão, [a-d] é equivalente a [abcd]. Muitos códigos de idioma classificam caracteres na ordem do dicionário e, nesses locais, [a-d] normalmente não é equivalente a [abcd]; pode ser equivalente a [aBbCcDd], por exemplo. Para obter a interpretação tradicional de expressões entre colchetes, você pode usar o código de idioma C configurando a variável de ambiente LC_ALL para o valor C.
Finalmente, certas classes nomeadas de caracteres são predefinidas nas expressões entre colchetes, da seguinte maneira. Seus nomes são autoexplicativos e 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 local atual. Na localidade C e na codificação do conjunto de caracteres ASCII, é igual a [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 nas 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 primeiro. Finalmente, para incluir um literal -, coloque-o por último.
Ancoragem
O acento circunflexo (caret) ^ e o cifrão
$ são metacaracteres que coincidem
respectivamente com o texto vazio no início e no
final de uma linha.
O caractere
de barra invertida e expressões especiais
Os símbolos \< e \>
respectivamente coincidem com o texto vazio no início
e no final de uma palavra. O símbolo \b
coincide com o texto vazio na borda de uma palavra e
\B coincide com o texto vazio, desde que eu
não esteja na borda de uma palavra. O símbolo
\w é sinônimo de [_[:alnum:]] e
\W é sinônimo de
[^_[:alnum:]].
Repetição
Uma expressão regular pode ser seguida por um dos
vários operadores de repetição:
? |
O item anterior é opcional e coincide com o máximo uma vez. | ||
* |
O item anterior coincidirá com zero ou mais vezes. | ||
+ |
O item anterior coincidirá com uma ou mais vezes. | ||
{n} |
O item anterior é coincidido exatamente n vezes. | ||
{n,} |
O item anterior é coincidido a n ou mais vezes. | ||
{,m} |
O item anterior é coincidido no máximo m vezes. Esta é uma extensão GNU. | ||
{n,m} |
O item anterior é coincidido pelo menos n vezes, mas não mais que m vezes. |
Concatenação
Duas expressões regulares podem ser concatenadas; a
expressão regular resultante coincide com qualquer
sequência formada concatenando duas partes de texto
que coincidem respectivamente às expressões
concatenadas.
Alternação
Duas expressões regulares podem ser unidas pelo
operador de infixo |; a expressão regular
resultante coincide com qualquer texto que coincida com a
expressão alternativa.
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 estar entre parênteses
para substituir essas regras de precedência e formar
uma subexpressão.
Retrorreferências
e subexpressões
A retrorreferência \n, onde n
é um único dígito, coincide à
parte de texto anteriormente coincidida pela
n-ésima subexpressão entre
parênteses da expressão regular.
Expressões
regulares básicas vs estendidas
Nas 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 foi selecionada e 2 se ocorreu um erro. No entanto, se B -q ou --quiet ou --silent for usado e uma linha for selecionada, o status de saída será 0, mesmo que tenha ocorrido um erro.
AMBIENTE
O comportamento de grep é afetado pelas seguintes variáveis de ambiente.
O código
do idioma da categoria LC_foo é
especificado examinando as três variáveis de
ambiente LC_ALL, LC_foo, LANG,
nessa ordem. A primeira dessas variáveis configuradas
especifica o código do idioma. Por exemplo, se
LC_ALL não estiver definido, mas
LC_MESSAGES estiver definido como pt_BR, o
código do idioma português do Brasil
será usado para a categoria LC_MESSAGES. O
código de idioma C é usado se nenhuma dessas
variáveis de ambiente estiver definida, se o
catálogo de códigos de idioma não
estiver instalado ou se grep não tiver sido
compilado com suporte ao idioma nacional (NLS). O comando de
shell locale -a lista as localidades que estão
disponíveis no momento.
GREP_OPTIONS
Essa variável especifica opções padrão a serem colocadas na frente de qualquer opção explícita. Como isso causa problemas ao escrever scripts portáteis, esse recurso será removido em uma versão futura do grep, e grep avisa se for usado. Por favor, use um apelido ou script.
GREP_COLOR
Essa variável especifica a cor usada para realçar o texto coincidente (não vazio). Ela foi descontinuada em favor de GREP_COLORS, mas ainda é suportada. Os recursos mt, ms e mc de GREP_COLORS têm prioridade sobre ela. Ela pode especificar apenas a cor usada para realçar o texto não vazio coincidente em qualquer ocorrência (uma linha selecionada quando a opção de linha de comando -v for omitida ou uma linha de contexto quando -v for especificado) . O padrão é 01;31, o que significa um texto em primeiro plano em negrito no fundo padrão do terminal.
GREP_COLORS
Especifica as cores e outros atributos usados para realçar várias partes da saída. Seu valor é uma lista de recursos separados por dois pontos, cujo padrão é ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 com os recursos booleanos rv e ne omitidos (ou seja, false). Os recursos suportados são os seguintes.
sl= |
Parte de texto de SGR para linhas selecionadas inteiras (ou seja, ocorrências quando a opção de linha de comando -v for omitida ou linhas não coincidentes quando -v for especificado). Se, no entanto, o recurso booleano rv e a opção de linha de comando -v forem especificadas, ela se aplicará às ocorrências ao contexto. O padrão está vazio (ou seja, o par de cores padrão do terminal). | ||
cx= |
Parte de texto de SGR para linhas de contexto inteiras (ou seja, linhas não coincidentes quando a opção de linha de comando -v for omitida ou ocorrências quando -v for especificado). Se, no entanto, o recurso booleano rv e a opção de linha de comando -v forem especificadas, ela se aplicará às linhas não coincidentes selecionadas. O padrão está vazio (ou seja, o par de cores padrão do terminal). | ||
rv |
Valor booleano que reverte (troca) os significados dos recursos sl= e cx= quando a opção da linha de comandos -v é especificada. O padrão é falso (ou seja, o recurso é omitido). |
mt=01;31
Parte de texto de SGR para coincidir com um texto não vazio em qualquer ocorrência (ou seja, uma linha selecionada quando a opção de linha de comando -v for omitida ou uma linha de contexto quando -v for especificado). Definir isso é equivalente a definir ms= e mc= de uma só vez para o mesmo valor. O padrão é um primeiro plano em texto em negrito sobre o plano de fundo da linha atual.
ms=01;31
Parte de texto de SGR para coincidir com um texto não vazio em uma linha selecionada. (Isso é usado apenas quando a opção de linha de comando -v é omitida.) O efeito do recurso sl= (ou cx= se rv) permanece ativo quando isso ocorre. O padrão é um primeiro plano em texto em negrito sobre o plano de fundo da linha atual.
mc=01;31
Parte de texto de SGR para coincidir com um texto não vazio em uma linha de contexto. (Isso é usado apenas quando a opção de linha de comando -v é especificada.) O efeito do recurso cx= (ou sl= se rv) permanece ativo quando isso ocorre. O padrão é um primeiro plano em texto em negrito sobre o plano de fundo da linha atual.
fn=35 |
Parte de texto de SGR para nomes de arquivos que prefixam qualquer linha de conteúdo. O padrão é um texto em primeiro plano de magenta sobre o plano de fundo padrão do terminal. | ||
ln=32 |
Parte de texto de SGR para números de linhas que prefixam qualquer linha de conteúdo. O padrão é um texto em primeiro plano verde sobre o plano de fundo padrão do terminal. | ||
bn=32 |
Parte de texto de SGR para posições de bytes que prefixam qualquer linha de conteúdo. O padrão é um texto em primeiro plano verde sobre o plano de fundo padrão do terminal. | ||
se=36 |
Parte de texto de SGR para separadores que são inseridos entre os campos de linha selecionados (:), entre os campos de linha de contexto, (-) e entre grupos de linhas adjacentes quando um contexto diferente de zero é especificado (--). O padrão é um texto em primeiro plano ciano sobre o plano de fundo padrão do terminal. | ||
ne |
Valor booleano que impede a limpeza até o final da linha usando Apagar na Linha (EL) para Direita (\33[K) toda vez que um item colorido termina. Isso é necessário em terminais nos quais o EL não é suportado. Caso contrário, é útil em terminais para os quais o recurso booleano terminfo back_color_erase (bce) não se aplica, quando as cores de realce escolhidas não afetam o plano de fundo ou quando o EL é muito lento ou causa muita oscilação. O padrão é falso (ou seja, o recurso é omitido). |
Observe que os recursos booleanos não possuem uma parte =.... Eles são omitidos (ou seja, false) por padrão e se tornam verdadeiros quando especificados.
Consulte a seção Select Graphic Rendition (SGR) na documentação do terminal de texto usado para valores permitidos e seu significado como atributos de caractere. Esses valores de parte de texto são números inteiros na representação decimal e podem ser concatenados com ponto e vírgula. O grep cuida da montagem do resultado em um texto SGR completo (\33[...m). Os valores comuns a concatenar incluem 1 para negrito, 4 para sublinhado, 5 para piscar, 7 para inversa, 39 para cor de primeiro plano padrão, 30 a 37 para cores de primeiro plano, 90 a 97 para modo de 16 cores de primeiro plano, 38;5;0 a 38;5;255 para modos de 88 cores e 256 cores de primeiro plano, 49 para cor de plano de fundo padrão, 40 a 47 para cores de plano de fundo, 100 a 107 para cores de plano de fundo no modo de 16 cores e 48;5;0 para 48;5;255 para os modos 88 e 256 cores.
LC_ALL, LC_COLLATE, LANG
Essas variáveis especificam o código de idioma da categoria LC_COLLATE, que determina a sequência de agrupamento usada para interpretar expressões de intervalo como [a-z].
LC_ALL, LC_CTYPE, LANG
Essas variáveis especificam o código de idioma da categoria LC_CTYPE, que determina o tipo de caracteres, por exemplo, quais caracteres são espaços em branco. Essa categoria também determina a codificação de caracteres, ou seja, se o texto é codificado em UTF-8, ASCII ou alguma outra codificação. No código de idioma C ou POSIX, todos os caracteres são codificados como um único byte e cada byte é um caractere válido.
LC_ALL, LC_MESSAGES, LANG
Essas variáveis especificam o código de idioma da categoria LC_MESSAGES, que determina o idioma que grep usa para mensagens. A localidade C padrão usa mensagens em inglês americano.
POSIXLY_CORRECT
Se definida, grep se comporta conforme requer o POSIX; caso contrário, grep se comporta mais como outros programas GNU. O POSIX requer que as opções que seguem os nomes dos arquivos sejam tratadas como nomes de arquivo; por padrão, essas opções são permutadas para a frente 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 contrárias à lei, o padrão é diagnosticá-las como “inválidas”. POSIXLY_CORRECT também desativa _N_GNU_nonoption_argv_flags_, descrito abaixo.
_N_GNU_nonoption_argv_flags_
(Aqui N é o ID numérico do processo de grep.) Se o i-nésimo caractere do valor dessa variável de ambiente for 1, não considera o i-nésimo operando de grep para ser uma opção, mesmo que pareça ser uma. Um shell pode colocar essa variável no ambiente para cada comando executado, especificando quais operandos são os resultados da expansão de curinga do nome do arquivo e, portanto, não devem ser tratados como opções. Esse comportamento está disponível apenas na biblioteca GNU C e somente quando POSIXLY_CORRECT não está definida.
NOTAS
Esta página man é mantida apenas de forma adequada; a documentação completa geralmente é mais atualizada.
DIREITOS AUTORAIS
Copyright 1998-2000, 2002, 2005-2020 Free Software Foundation, Inc.
Este é um software livre; consulte o código-fonte para condições de cópia. Há NENHUMA garantia; nem mesmo para COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM OBJETIVO ESPECÍFICO.
BUGS
Relatando
erros
Envie por e-mail relatórios de erros para
bug-grep [AT] gnu.org">o endereço de
relatório de erros. Um
https://lists.gnu.org/mailman/listinfo/bug-grep">arquivo
de e-mails e um
https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep">rastreador
de erros estão disponíveis.
Erros
conhecidos
Grandes contagens de repetição na
construção
{n,m} podem fazer com que
grep use muita memória. Além disso,
certas outras expressões regulares obscuras exigem
tempo e espaço exponenciais e podem causar a falta de
memória de grep.
As retrorreferências são muito lentas e podem exigir tempo exponencial.
EXEMPLO
O exemplo a seguir exibe o local e o conteúdo de qualquer linha que contém “f” e termina em “.c”, em todos os arquivos no diretório atual cujos nomes contêm “g” e terminam em “.h”. A opção -n emite números de linha, o argumento -- trata expansões de “*g*.h” começando com “-” como nomes de arquivos, não como opções, e o arquivo vazio /dev/null faz com que os nomes dos arquivos sejam gerados, mesmo que apenas um nome esteja no formato “*g*.h”.
$
grep -n -- ’f.*\.c$’ *g*.h /dev/null
argmatch.h:1:/* definitions and prototypes for
argmatch.c
A única linha que coincide é a linha 1 de argmatch.h. Observe que a sintaxe da expressão regular usada no padrão difere da sintaxe flutuante que o shell usa para coincidir com os nomes dos arquivos.
VEJA TAMBÉM
Páginas
de manual comuns
awk(1), cmp(1), diff(1), find(1),
perl(1), sed(1), sort(1),
xargs(1), read(2), pcre(3),
pcresyntax(3), pcrepattern(3),
terminfo(5), glob(7), regex(7).
Documentação
completa
Um
https://www.gnu.org/software/grep/manual/">manual
completo está disponível. Se os programas
info e grep estiverem instalados adequadamente
em seu sistema, o comando
info grep
deve lhe dar acesso ao manual completo.
TRADUÇÃO
A tradução para português brasileiro desta página man foi criada por Rafael Fontenelle <rafaelff [AT] gnome.org>
Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita.
Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para <debian-l10n-portuguese [AT] lists.org>.