Linux e Unix grep comando grep. Que significa expressão de expressão regular global, processa texto linha por linha e imprime as linhas que correspondem a um padrão especificado. Grep sintaxe Grep é uma ferramenta poderosa para combinar uma expressão regular contra texto em um arquivo, vários arquivos, ou um fluxo de entrada. Ele procura o PATTERN de texto que você especificar na linha de comando e exibe os resultados para você. Exemplo de uso Permite dizer que deseja localizar rapidamente a frase nossos produtos em arquivos HTML em sua máquina. Vamos começar pesquisando um único arquivo. Aqui, nosso PATTERN é nossos produtos e nosso ARQUIVO é product-listing. html. Uma única linha foi encontrada contendo nosso padrão, e grep produz a linha de correspondência completa para o terminal. A linha é mais longa do que a largura do terminal, de modo que o texto envolve as seguintes linhas, mas esta saída corresponde exatamente a uma linha no nosso FILE. Nota: O PATTERN é interpretado por grep como uma expressão regular. No exemplo acima, todos os caracteres que usamos (letras e um espaço) são interpretados literalmente em expressões regulares, então somente a frase exata será combinada. Outros caracteres têm significados especiais, no entanto mdash alguns sinais de pontuação, por exemplo. Para obter mais informações, consulte a Referência rápida de expressões regulares. Visualizando a saída grep em cores Se usarmos a opção --color, nossas correspondências bem-sucedidas serão realçadas para nós: Visualizar números de linha de correspondências bem-sucedidas Será ainda mais útil se soubermos onde a linha correspondente aparece em nosso arquivo. Se especificarmos a opção - n, grep prefixará cada linha correspondente com o número da linha: Nossa linha de correspondência é prefixada com 18: o que nos diz que isso corresponde à linha 18 em nosso arquivo. Executando pesquisas grep que não diferenciam maiúsculas e minúsculas E se nossos produtos aparecerem no início de uma frase ou aparecerem em maiúsculas Podemos especificar a opção - i para realizar uma correspondência que não diferencia maiúsculas de minúsculas: Usando a opção - i, grep encontra uma correspondência on-line 23 também. Pesquisando vários arquivos usando um caractere curinga Se temos vários arquivos para pesquisar, podemos pesquisá-los usando um caractere curinga no nosso nome FILE. Em vez de especificar product-listing. html. Podemos usar um asterisco () ea extensão. html. Quando o comando é executado, o shell irá expandir o asterisco para o nome de qualquer arquivo que encontrar (dentro do diretório atual) que termina em. html. Observe que cada linha começa com o arquivo específico onde ocorre essa correspondência. Pesquisando recursivamente subdiretórios Podemos estender nossa pesquisa para subdiretórios e quaisquer arquivos que contenham usando a opção - r, que diz ao grep para executar sua pesquisa recursivamente. Permite alterar nosso nome de arquivo para apenas um asterisco (), para que ele irá corresponder a qualquer arquivo ou nome de diretório, e não apenas arquivos HTML: Isso nos dá três partidas adicionais. Observe que o nome do diretório é incluído para quaisquer arquivos correspondentes que não estejam no diretório atual. Usando expressões regulares para executar buscas mais poderosas O verdadeiro poder de grep é que ele pode ser usado para combinar expressões regulares. (Isso é o que o re em grep significa). Expressões regulares usam caracteres especiais na seqüência de caracteres PATTERN para corresponder a uma matriz mais ampla de seqüências de caracteres. Vejamos um exemplo simples. Vamos dizer que você quer encontrar todas as ocorrências de uma frase semelhante aos nossos produtos em seus arquivos HTML, mas a frase deve sempre começar com a nossa e terminar com produtos. Podemos especificar este PATTERN em vez disso: our. products. Em expressões regulares, o período (.) É interpretado como um curinga de caractere único. Isso significa que qualquer personagem que aparece neste lugar irá corresponder. O asterisco () significa que o caracter precedente, que aparece zero ou mais vezes, corresponderá. Então, a combinação. Irá corresponder a qualquer número de qualquer caractere. Por exemplo, nossos produtos surpreendentes, nossos, os mais melhores produtos sempre, e mesmo ourproducts combinarão. E porque estavam especificando a opção - i, NOSSOS PRODUTOS e OuRpRoDuCtS combinarão também. Vamos executar o comando com esta expressão regular, e ver o que as partidas adicionais que podemos obter: Aqui, também temos uma correspondência da frase nossos produtos finos. Grep é uma ferramenta poderosa que pode ajudá-lo a trabalhar com arquivos de texto, e fica ainda mais poderoso quando você se sentir confortável usando expressões regulares. Descrição técnica grep pesquisa a entrada nomeada FILE s (ou entrada padrão se nenhum arquivo é nomeado, ou se um único traço (-) é dado como o nome do arquivo) para as linhas que contêm uma correspondência para o determinado PATTERN. Por padrão, grep imprime as linhas correspondentes. Além disso, três programas variantes egrep. Fgrep e rgrep estão disponíveis: egrep é o mesmo que executando grep - E. Neste modo, grep avalia sua seqüência PATTERN como uma expressão regular estendida (ERE). Hoje em dia, ERE não se estende muito além de expressões regulares básicas, mas eles ainda podem ser muito úteis. Para obter mais informações sobre expressões regulares estendidas, consulte Basic x Extended Regular Expressions. abaixo. Fgrep é o mesmo que executar grep - F. Nesse modo, grep avalia a seqüência de caracteres PATTERN como uma string fixa mdash, cada caractere da string é tratado literalmente. Por exemplo, se sua seqüência de caracteres contém um asterisco (), grep tentará combiná-lo com um asterisco real em vez de interpretar isso como um curinga. Se a seqüência de caracteres contém várias linhas (se contiver linhas de nova linha), cada linha será considerada uma seqüência fixa e qualquer uma delas pode disparar uma correspondência. Rgrep é o mesmo que executar grep - r. Neste modo, o grep realizará sua pesquisa recursivamente. Se ele encontrar um diretório, ele irá percorrer esse diretório e continuar a pesquisa. (Os links simbólicos são ignorados se você quiser pesquisar diretórios que estão simbolicamente vinculados, você deve usar a opção - R). Em sistemas operacionais mais antigos, egrep. Fgrep e rgrep foram programas distintos com seus próprios exectuables. Em sistemas modernos, esses nomes de comandos especiais são simplesmente atalhos para grep com os indicadores apropriados ativados. Eles são funcionalmente equivalentes. Opções gerais Imprima uma mensagem de ajuda resumindo resumidamente as opções da linha de comando e saia. Se possível, use a chamada do sistema mmap para ler a entrada, em vez da chamada padrão do sistema de leitura. Em algumas situações, o --mmap gera um melhor desempenho. No entanto, --mmap pode causar um comportamento indefinido (incluindo os dumps de núcleo) se um arquivo de entrada encolher enquanto grep estiver operando, ou se ocorrer um erro de E / S. Tratar o arquivo (s) como binário. Por padrão, em MS-DOS e MS-Windows, grep adivinha o tipo de arquivo olhando o conteúdo do primeiro 32 KB ler do arquivo. Se grep decidir que o arquivo é um arquivo de texto, remove os caracteres CR do conteúdo do arquivo original (para fazer expressões regulares com e trabalhar corretamente). Especificar - U substitui essa adivinhação, fazendo com que todos os arquivos sejam lidos e passados ao mecanismo de correspondência verbatim 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 que não MS-DOS e MS-Windows. Trate a entrada como um conjunto de linhas, cada terminada por um byte zero (o caractere ASCII NUL) em vez de uma nova linha. Assim como a opção - Z ou --null, essa 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 seqüências de caracteres. Expressões regulares são construídas de forma análoga a expressões aritméticas, usando vários operadores para combinar expressões menores. Grep compreende três versões diferentes da sintaxe da expressão regular: quotbasicquot (BRE), quotextendedquot (ERE) e quotperlquot (PRCE). No GNU grep. Não há diferença na funcionalidade disponível entre sintaxes básicas e estendidas. Em outras implementações, as expressões regulares básicas são menos poderosas. A descrição a seguir se aplica a expressões regulares estendidas diferenças para expressões regulares básicas são resumidas posteriormente. Expressões regulares Perl dar funcionalidade adicional. 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 próprios. Qualquer meta-caráter com significado especial pode ser citado precedendo-o com uma barra invertida. O período (.) Corresponde a qualquer caractere único. Classes de Caracteres e Expressões de Suporte Uma expressão de colchetes é uma lista de caracteres delimitada por e. Ele corresponde a qualquer caractere nessa lista se o primeiro caractere da lista é o cursor, então ele corresponde a qualquer caractere não na lista. Por exemplo, a expressão regular 0123456789 corresponde a qualquer dígito único. Dentro de uma expressão de colchete, uma expressão de intervalo consiste em dois caracteres separados por um hífen. Corresponde a qualquer caractere único que classifica entre os dois caracteres, inclusive, usando a seqüência de agrupamento de localidades eo conjunto de caracteres. Por exemplo, na localidade C padrão, a-d é equivalente a abcd. Muitas localidades classificam caracteres na ordem do dicionário e nestas localidades a-d normalmente não é equivalente a abcd, pode ser equivalente a aBbCcDd. por exemplo. Para obter a interpretação tradicional de expressões de colchetes, você pode usar a localidade C definindo a variável de ambiente LCALL como o valor C. Finalmente, certas classes nomeadas de caracteres são predefinidas dentro de expressões entre colchetes, da seguinte forma. Seus nomes são auto-explicativos, e eles são: alnum:. : Alfa:. : Cntrl:. : Dígito:. : Gráfico:. :mais baixo: . :impressão: . : Punct:. : Espaço:. : Superior:. E: xdigit:. Por exemplo,: alnum: significa a classe de caracteres de números e letras na localidade atual. Na localidade C e codificação de conjunto de caracteres ASCII, este é o mesmo que 0-9A-Za-z. (Observe que os colchetes nesses nomes de classe são parte dos nomes simbólicos e devem ser incluídos além dos colchetes que delimitam a expressão de colchete.) A maioria dos meta-caracteres perdem seu significado especial dentro de expressões de colchetes. Para incluir um lugar literal, ele primeiro na lista. Da mesma forma, para incluir um lugar literal em qualquer lugar, mas primeiro. Finalmente, para incluir um literal -. Coloque-o por último. O caret eo sinal de dólar são meta-caracteres que correspondem, respectivamente, à cadeia vazia no início e no final de uma linha. O caractere de barra invertida e expressões especiais Os símbolos lt e gt 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 de: alnum: e W é um sinônimo de: alnum:. Repetição Uma expressão regular pode ser seguida por um dos vários operadores de repetição: 12 Exemplos práticos do comando Linux grep Alguma vez você já foi confrontado com a tarefa de procurar uma determinada seqüência ou padrão em um arquivo, mas não tem idéia de onde começar a procurar Bem Então, aqui está o grep para o resgate 12 Exemplos de comandos Grep O grep é um poderoso pesquisador de padrões de arquivos que vem equipado em todas as distribuições do Linux. Se, por algum motivo, não estiver instalado no seu sistema, você pode facilmente instalá-lo através do seu gerenciador de pacotes (apt-get no Debian / Ubuntu e yum no RHEL / CentOS / Fedora). Descobri que a maneira mais fácil de obter seus pés molhados com grep é apenas mergulhar direito em e usar alguns exemplos do mundo real. 1. Pesquisar e localizar arquivos Vamos dizer que você acabou de instalar uma nova cópia do novo Ubuntu em sua máquina, e que você está indo para dar scripting Python um tiro. Você tem pesquisado a web procurando tutoriais, mas você vê que existem duas versões diferentes do Python em uso, e você não sabe qual deles foi instalado no seu sistema pelo instalador do Ubuntu, ou se ele instalou quaisquer módulos. Basta executar este comando: Sample Output Em primeiro lugar, executámos dpkg l. Que lista pacotes. deb instalados em seu sistema. Em segundo lugar, canalizamos essa saída para grep i python, que estados simples vão para grep e filtrar e retornar tudo com python nele. A opção i está lá para ignorar o caso, pois grep diferencia maiúsculas de minúsculas. Usando a opção i é um bom hábito de entrar, a menos, é claro, você está tentando pregar uma busca mais específica. 2. Procurar e filtrar arquivos O grep também pode ser usado para pesquisar e filtrar dentro de arquivos individuais ou vários arquivos. Vamos ter este cenário: Você está tendo alguns problemas com o seu servidor Web Apache. E você chegou a um dos muitos fóruns incríveis na rede pedindo alguma ajuda. A alma amável que responde a você pediu que você postasse o conteúdo de seu arquivo / etc / apache2 / sites-available / default-ssl. Não seria mais fácil para você, o cara ajudá-lo, e todos lê-lo, se você pudesse remover todas as linhas comentadas Bem, você pode apenas executar isso: A opção v diz grep para inverter sua saída, o que significa que em vez de imprimir linhas correspondentes , Faça o oposto e imprima todas as linhas que não correspondem à expressão, neste caso, as linhas comentadas. 3. Localizar todos os arquivos. mp3 apenas O grep pode ser muito útil para a filtragem de stdout. Por exemplo, vamos dizer que você tem uma pasta inteira cheia de arquivos de música em um monte de formatos diferentes. Você quer encontrar todos os arquivos. mp3 do artista JayZ. Mas você não quer nenhuma das trilhas remixed. Usando um comando find com um par de grep pipes fará o truque: Neste exemplo, estamos usando find para imprimir todos os arquivos com uma extensão. mp3. Piping-lo para grep i para filtrar e imprime todos os arquivos com o nome JayZ e, em seguida, outro tubo para grep vi que filtros para fora e não imprimir todos os nomes de arquivos com a seqüência de caracteres (em qualquer caso) remix. 4. Mostrar número de linhas antes ou depois da cadeia de procura Outras opções são as opções A e B, que exibe a linha correspondente eo número de linhas que vêm antes ou depois da cadeia de pesquisa. Enquanto a página man fornece uma explicação mais detalhada, acho mais fácil lembrar as opções como A depois. E B antes: 5. Imprime o número de linhas ao redor da correspondência A opção greps C é semelhante, mas em vez de imprimir as linhas que vêm antes ou depois da seqüência, ela imprime as linhas em qualquer direção: 6. Contagem Número de Correspondências Semelhante a Canalizar uma string grep para a contagem de palavras (programa wc) opção incorporada greps pode executar o mesmo para você: 7. Arquivos de Pesquisa por Cadeia Dada A opção n para grep é muito útil ao depurar arquivos durante erros de compilação. Ele exibe o número da linha no arquivo da seqüência de pesquisa fornecida: 8. Pesquisar uma Cadeia de Caracteres Recursivamente em todos os Diretórios Se você deseja procurar uma string no diretório atual junto com todos os subdiretórios, você pode especificar a opção r para Pesquisa recursivamente: 9. Procura por todo o padrão Passando a opção w para grep procura o padrão inteiro que está na string. Por exemplo, usando: irá imprimir a linha que contém o padrão entre aspas. Por outro lado, se você tentar: Nada será retornado como não estamos procurando um padrão, mas uma palavra inteira. 10. Procurar uma Cadeia de Caracteres em Arquivos Gzipados Merecedores de menção são derivados de greps. O primeiro é zgrep. Que, semelhante ao zcat. É para uso em arquivos gzipados. Ele toma as mesmas opções que grep e é usado da mesma maneira: 11. Expressão Regular de Jogo em Arquivos O egrep é outro derivado que significa Expression Regular Global Estendida. Ele reconhece meta-caracteres de expressão adicionais como em. E (). Egrep é muito útil para pesquisar arquivos de origem, e outras peças de código, se a necessidade surgir. Ele pode ser invocado a partir de grep regular, especificando a opção E. 12. Procurar uma String de Padrão Fixo O fgrep pesquisa um arquivo ou lista de arquivos para uma string de padrão fixa. É o mesmo que grep F. Uma maneira comum de usar fgrep é passar um arquivo de padrões para ele: Este é apenas um ponto de partida com grep. Mas como você provavelmente é capaz de ver, é inestimável para uma variedade de propósitos. Além dos comandos simples de uma linha que implementamos, o grep pode ser usado para escrever trabalhos cron poderosos e scripts de shell robustos. para começar. Seja criativo, experimente as opções na página do manual. E vêm acima com as expressões do grep que servem seus próprios fins Im novo a grep, mas eu o encontrei muito acessível. Eu faço alot de pesquisar os mesmos arquivos todos os dias e na maioria das vezes é um único arquivo grep - i - A50 8220diskview - j8221 - Report less - R Tenho este pseudônimo que funciona ótimo pensamento às vezes eu estou trabalhando em vários sistemas de uma vez e Todos eles têm o mesmo arquivo. Eu preciso saber qual matriz eu estou olhando, mas eu não preciso dele para imprimir o nome do arquivo para todas as 50 linhas. Então o que eu estava tentando descobrir é posso fazer um grep - i - l 8220diskview - j8221 - Report seguido pelo meu comando grep original para obter o nome do arquivo por ele próprio seguido pelo diskview - j e as próximas 50 linhas Ou Isso vai produzir 3 nomes de arquivo seguidos por 3 relatórios diskveiw - j Muito útil. Thanks8230 Tem algo a dizer Junte-se à discussão. Cancelar resposta GUIA DE INICIANTE PARA LINUX Comece a aprender Linux em minutos Vi / Vim Editor GUIA DE INICIAIS Aprenda vi / vim como um Editor de Texto Completo Exame de Certificação Linux Foundation Guia de Estudo para LFCS e LFCE Aaron Kili diz: Ravi Saive diz: Linux System Administrator Bundle com 7-Cursos (96 off) Terminando em: 3 dias CentOS Red Hat Certificado Curso de Administrador de Sistemas (90 off) Ending In: 4 dias Baixar Linux grátis eBooks Nunca perca qualquer Linux Tutorials, Guias, Dicas e eBooks grátis Junte-se Grep grep, egrep, fgrep, rgrep - linhas de impressão que correspondem a um padrão DESCRIÇÃO grep pesquisa a entrada nomeada FILE s (ou entrada padrão se nenhum arquivo for nomeado, ou se Um único hífen-menos (-) é dado como nome de arquivo) para as linhas que contêm uma correspondência para o determinado PATTERN. Por padrão, grep imprime as linhas correspondentes. Além disso, três programas variantes egrep, fgrep e rgrep estão disponíveis. Egrep é o mesmo que grep-E. Fgrep é o mesmo que grep - F. Rgrep é o mesmo que grep - r. A invocação direta como egrep ou fgrep é obsoleta, mas é fornecida para permitir que aplicativos históricos que dependem deles sejam executados sem modificação. Informações sobre o programa genérico --help Imprima uma mensagem de uso resumindo resumidamente essas opções da linha de comando e o endereço de relatório de erros e, em seguida, saia. - V. --version Imprime o número da versão de grep para o fluxo de saída padrão. Este número de versão deve ser incluído em todos os relatórios de bugs (veja abaixo). Seleção de Seleção - E. --extended-regexp Interpretar PATTERN como uma expressão regular estendida (ERE, veja abaixo). (-E é especificado pelo POSIX.) - F. --fixed-strings Interprete PATTERN como uma lista de strings fixos, separados por newlines, qualquer um dos quais deve ser correspondido. (-F é especificado pelo POSIX.) - G. --basic-regexp Interpretar PATTERN como uma expressão regular básica (BRE, veja abaixo). Esse é o padrão. - P. --perl-regexp Interpretar PATTERN como uma expressão regular Perl (PCRE, veja abaixo). Isso é altamente experimental e grep - P pode alertar sobre recursos não implementados. Controle de correspondência - e PATTERN. --regexp PATTERN Use PATTERN como padrão. Isso pode ser usado para especificar vários padrões de pesquisa ou para proteger um padrão começando com um hífen (-). (-e é especificado pelo POSIX.) - f ARQUIVO. --file FILE Obter padrões de FILE. Um por linha. O arquivo vazio contém zero padrões e, portanto, nada corresponde. (-f é especificado pelo POSIX.) - i. --ignore-case Ignore as distinções de caso no PATTERN e nos arquivos de entrada. (-i é especificado pelo POSIX.) - v. --invert-match Inverter o sentido de correspondência, para selecionar linhas não correspondentes. (-v é especificado pelo POSIX.) - w. --word-regexp Selecione somente as linhas que contenham correspondências que formam palavras inteiras. O teste é que a substring correspondente deve estar no início da linha, ou precedida por um caractere constituinte não-palavra. Da mesma forma, deve ser no final da linha ou seguido por um caractere constituinte não-palavra. Os caracteres constituintes da palavra são letras, dígitos e sublinhado. - x. --line-regexp Selecione apenas as correspondências que correspondam exatamente à linha inteira. (-x é especificado pelo POSIX.) - y Sinônimo obsoleto para - i. Controle Geral de Saída - c. --count Suprimir a saída normal em vez de imprimir uma contagem de linhas correspondentes para cada arquivo de entrada. Com o - v. --invert-match opção (ver abaixo), contagem de linhas não correspondentes. (-c é especificado por POSIX.) --color WHEN, --color QUANDO Envolve as cadeias correspondentes (não vazias), linhas correspondentes, linhas de contexto, nomes de arquivos, números de linha, deslocamentos de bytes e separadores (para campos e grupos De linhas de contexto) com seqüências de escape para exibi-las em cores no terminal. As cores são definidas pela variável de ambiente GREPCOLORS. A variável de ambiente depreciada GREPCOLOR ainda é suportada, mas sua configuração não tem prioridade. QUANDO nunca é. Sempre. Ou automático. - EU . --files-without-match Suprime a saída normal em vez disso, imprime o nome de cada arquivo de entrada do qual nenhuma saída normalmente teria sido impressa. A digitalização será interrompida no primeiro jogo. - eu . --files-with-matches Suprime a saída normal em vez disso, imprime o nome de cada arquivo de entrada a partir do qual a saída normalmente teria sido impressa. A digitalização será interrompida no primeiro jogo. (-l é especificado pelo POSIX.) - m NUM. --max-count NUM Parar de ler um arquivo após NUM linhas de correspondência. Se a entrada for a entrada padrão de um arquivo regular e NUM linhas de correspondência são saída, grep garante que a entrada padrão é posicionada imediatamente após a última linha correspondente antes de sair, independentemente da presença de linhas de contexto à direita. Isso permite que um processo de chamada retome uma pesquisa. Quando grep pára após NUM linhas de correspondência, ele produz quaisquer linhas de contexto à direita. Quando a opção - c ou - count também é usada, grep não produz uma contagem maior do que NUM. Quando a opção - v ou --invert-match também é usada, grep pára depois de produzir NUM linhas não correspondentes. - o. - apenas emparelhamento Imprima apenas as partes correspondentes (não vazias) de uma linha de correspondência, com cada uma dessas partes numa linha de saída separada. - q. --quieto . --silent Quiet não escreve nada na saída padrão. Saia imediatamente com status zero se qualquer correspondência for encontrada, mesmo se um erro foi detectado. Consulte também a opção - s ou --no-messages. (-q é especificado pelo POSIX.) - s. --no-messages Suprime mensagens de erro sobre arquivos inexistentes ou ilegíveis. Nota de portabilidade: ao contrário do GNU grep. 7ª Edição O grep do Unix não estava em conformidade com o POSIX, porque faltava - q e sua opção - s se comportava como a opção GNU grep 39s - q. O grep do estilo USG também carecia de - q, mas sua opção - s se comportava como o GNU grep. Os scripts de shell portáteis devem evitar ambos - q e - s e devem redirecionar padrão e saída de erro para / dev / null em vez disso. (-s é especificado pelo POSIX.) Controle de prefixo de linha de saída - b. --byte-offset Imprime o deslocamento de bytes baseado em 0 no arquivo de entrada antes de cada linha de saída. Se for especificado - o (--only-matching), imprima o deslocamento da própria peça correspondente. - H. --with-filename Imprime o nome do arquivo para cada correspondência. Esse é o padrão quando há mais de um arquivo para pesquisar. - h. --no-filename Suprime o prefixo de nomes de arquivo na saída. Esse é o padrão quando há apenas um arquivo (ou apenas entrada padrão) para pesquisar. --label LABEL Exibe a entrada realmente proveniente da entrada padrão como entrada proveniente do arquivo LABEL. Isso é especialmente útil ao implementar ferramentas como o zgrep. por exemplo. Gzip - cd foo. gz grep --labelfoo - H algo. Consulte também a opção - H. - n. --line-number Prefixo cada linha de saída com o número de linha 1-based dentro de seu arquivo de entrada. (-n é especificado pelo POSIX.) - T. --initial-tab Certifique-se de que o primeiro caractere do conteúdo de linha real fica em uma parada de tabulação, de modo que o alinhamento das guias parece normal. Isso é útil com opções que prefixam sua saída para o conteúdo real: - H, - n. E - b. Para melhorar a probabilidade de que linhas de um único arquivo começam todas na mesma coluna, isso também faz com que o número da linha eo deslocamento de bytes (se presentes) sejam impressos em uma largura de campo de tamanho mínimo. - você . --unix-byte-offsets Relata deslocamentos de bytes de estilo Unix. Essa opção faz com que o grep relate bytes de deslocamento como se o arquivo fosse um arquivo de texto em estilo Unix, isto é, com caracteres CR removidos. Isso produzirá resultados idênticos ao grep em execução em uma máquina Unix. Esta opção não tem efeito a menos que a opção - b também é utilizada, não tem efeito em plataformas diferentes do MS-DOS e do 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 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 Imprimir NUM linhas de contexto à direita após linhas de correspondência. 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 Imprimir NUM linhas de contexto antes de linhas de correspondência. 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 Imprimir 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. Seleção de Arquivo e Diretório - a. --text Processar um arquivo binário como se fosse texto isso é equivalente à opção --binary-filestext. --binary-files TYPE Se os primeiros bytes de um arquivo indicarem que o arquivo contém dados binários, suponha que o arquivo seja do tipo TYPE. Por padrão, TYPE é binário. E grep normalmente saídas uma mensagem de uma linha dizendo que um arquivo binário corresponde, ou nenhuma mensagem se não houver nenhuma correspondência. Se TYPE for sem correspondência. Grep assume que um arquivo binário não corresponde a este é equivalente à opção - I. Se TYPE for texto. Grep processa um arquivo binário como se fosse texto isso é equivalente à opção - a. Aviso: grep - binário-filestext pode produzir binário lixo, que pode ter efeitos colaterais desagradáveis se a saída é um terminal e se o driver de terminal interpreta alguns deles como comandos. - D AÇÃO. --devices ACTION Se um arquivo de entrada é um dispositivo, FIFO ou soquete, use ACTION para processá-lo. Por padrão, ACTION é lida. O que significa que os dispositivos são lidos como se fossem arquivos comuns. Se a ação for ignorada. Dispositivos são ignorados silenciosamente. - d ACÇÃO. --directories ACTION Se um arquivo de entrada for um diretório, use ACTION para processá-lo. Por padrão, ACTION é lida. O que significa que os diretórios são lidos como se fossem arquivos comuns. Se a ação for ignorada. Diretórios são ignorados silenciosamente. Se ACTION é recurse. Grep lê todos os arquivos em cada diretório, recursivamente isso é equivalente à opção - r. --exclude GLOB Ignorar arquivos cujo nome de base corresponde a GLOB (usando correspondência de curinga). Um nome de arquivo glob pode usar. . E. Como curingas, e para citar literalmente um caractere curinga ou barra invertida. --exclude-from FILE Saltar arquivos cujo nome de base corresponde a qualquer um dos globs de nome de arquivo lidos a partir de FILE (usando a correspondência de curinga conforme descrito em --exclude). --exclude-dir DIR Exclua os diretórios correspondentes ao DIR padrão de pesquisas recursivas. - I Processar um arquivo binário como se ele não tivesse dados correspondentes, isso é equivalente à opção --binary-fileswithout-match. --incluir GLOB Pesquisa somente os arquivos cujo nome de base corresponde a GLOB (usando a correspondência de caracteres curinga conforme descrito em --exclude). - R. - r. --recursive Leia todos os arquivos em cada diretório, recursivamente isso é equivalente à opção - d recurse. Outras Opções --line-buffered Utilize buffer de linha na saída. Isso pode causar uma penalidade de desempenho. --mmap Se possível, use a chamada do sistema mmap (2) para ler a entrada, em vez da chamada padrão do sistema read (2). Em algumas situações, o --mmap gera um melhor desempenho. No entanto, --mmap pode causar um comportamento indefinido (incluindo os dumps de núcleo) se um arquivo de entrada encolher enquanto grep estiver operando, ou se ocorrer um erro de E / S. - VOCÊ . --binary Trate o arquivo (s) como binário. Por padrão, em MS-DOS e MS-Windows, grep adivinha o tipo de arquivo olhando o conteúdo do primeiro 32 KB ler do arquivo. Se grep decidir que o arquivo é um arquivo de texto, remove os caracteres CR do conteúdo do arquivo original (para fazer expressões regulares com e trabalhar corretamente). Especificar - U substitui essa adivinhação, fazendo com que todos os arquivos sejam lidos e passados ao mecanismo de correspondência verbatim 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 que não MS-DOS e MS-Windows. - z. --null-data Trate a entrada como um conjunto de linhas, cada uma terminada por um byte zero (o caractere ASCII NUL) em vez de uma nova linha. Assim como a opção - Z ou --null, essa 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 strings. Expressões regulares são construídas de forma análoga a expressões aritméticas, usando vários operadores para combinar expressões menores. Grep compreende três diferentes versões da sintaxe da expressão regular: basic3939 (BRE), extended3939 (ERE) e perl3939 (PRCE). No GNU grep. Não há diferença na funcionalidade disponível entre sintaxes básicas e estendidas. Em outras implementações, as expressões regulares básicas são menos poderosas. A descrição a seguir se aplica a expressões regulares estendidas diferenças para expressões regulares básicas são resumidas posteriormente. Expressões regulares Perl fornecem funcionalidade adicional e são documentadas em pcrepattern (3), mas podem não estar disponíveis em todos os sistemas. 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 próprios. Qualquer meta-caráter com significado especial pode ser citado precedendo-o com uma barra invertida. O período . Corresponde a qualquer caractere único. Classes de Caracteres e Expressões de Suporte Uma expressão de colchetes é uma lista de caracteres delimitada por e. Ele corresponde a qualquer caractere nessa lista se o primeiro caractere da lista é o cursor, então ele corresponde a qualquer caractere não na lista. Por exemplo, a expressão regular 0123456789 corresponde a qualquer dígito único. Dentro de uma expressão de colchete, uma expressão de intervalo consiste em dois caracteres separados por um hífen. Ele corresponde a qualquer caractere único que classifica entre os dois caracteres, inclusive, usando a seqüência de agrupamento e o conjunto de caracteres do locale39s. Por exemplo, na localidade C padrão, a-d é equivalente a abcd. Muitas localidades classificam caracteres na ordem do dicionário e nestas localidades a-d normalmente não é equivalente a abcd, pode ser equivalente a aBbCcDd. por exemplo. Para obter a interpretação tradicional de expressões de colchetes, você pode usar a localidade C definindo a variável de ambiente LCALL como o valor C. Finalmente, certas classes nomeadas de caracteres são predefinidas dentro de expressões entre colchetes, da seguinte forma. Seus nomes são auto-explicativos, e eles são: alnum:. : Alfa:. : Cntrl:. : Dígito:. : Gráfico:. :mais baixo: . :impressão: . : Punct:. : Espaço:. : Superior:. E: xdigit :. Por exemplo,: alnum: significa a classe de caracteres de números e letras na localidade atual. Na localidade C e codificação de conjunto de caracteres ASCII, este é o mesmo que 0-9A-Za-z. (Observe que os colchetes nesses nomes de classe são parte dos nomes simbólicos e devem ser incluídos além dos colchetes que delimitam a expressão de colchete.) A maioria dos meta-caracteres perdem seu significado especial dentro de expressões de colchetes. Para incluir um lugar literal, ele primeiro na lista. Da mesma forma, para incluir um lugar literal em qualquer lugar, mas primeiro. Finalmente, para incluir um literal - o lugar ele último. O caret eo sinal de dólar são meta-caracteres que correspondem, respectivamente, à cadeia vazia no início e no final de uma linha. O caractere de barra invertida e expressões especiais Os símbolos lt e gt 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 de: alnum: e W é um sinônimo de: alnum:. Repetição Uma expressão regular pode ser seguida por um de vários operadores de repetição: O item precedente é opcional e combinado no máximo uma vez. O item anterior será igualado zero ou mais vezes. O item anterior será correspondido uma ou mais vezes. N O item anterior é correspondido exatamente n vezes. N, O item anterior é correspondido n ou mais vezes. N, m O item anterior é correspondido pelo menos n vezes, mas não mais de 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. Alternação Duas expressões regulares podem ser unidas pelo operador infix a expressão regular resultante corresponde a qualquer string correspondente a uma 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 ser incluída entre parênteses para substituir essas regras de precedência e formar uma subexpressão. Voltar Referências e Subexpressões A referência posterior n. Onde n é um único dígito, corresponde à subcadeia previamente combinada pela nª subexpressão entre parênteses da expressão regular. Expressões regulares básicas versus estendidas Tradicionais egrep não suporta o meta-caráter, e algumas implementações egrep suporte em vez disso, para que os scripts portáteis devem evitar em grep - E padrões e deve usar para corresponder a um literal. GNU grep - E tenta dar suporte ao uso tradicional assumindo que não é especial se ele seria o início de uma especificação de intervalo inválido. Por exemplo, o comando grep - E 39 procura a seqüência de dois caracteres em vez de relatar um erro de sintaxe na expressão regular. POSIX.2 permite que esse comportamento seja uma extensão, mas os scripts portáteis devem evitá-lo. VARIÁVEIS DO AMBIENTE O comportamento do grep é afetado pelas seguintes variáveis de ambiente. O local para a categoria LC foo é especificado examinando as três variáveis de ambiente LCALL. LC foo. LANG. naquela ordem. A primeira dessas variáveis que é definida especifica a localidade. Por exemplo, se LCALL não estiver definido, mas LCMESSAGES é definido como ptBR. Então a localidade portuguesa brasileira é usada para a categoria LCMESSAGES. A localidade C é usada se nenhuma dessas variáveis de ambiente estiver definida, se o catálogo de localidade não estiver instalado, ou se grep não foi compilado com suporte de idioma nacional (NLS). GREPOPTIONS Esta variável especifica as opções padrão a serem colocadas na frente de quaisquer opções explícitas. Por exemplo, se GREPOPTIONS é 39 - binário-fileswithout-match --directoriesskip39. Grep se comporta como se as duas opções - binário-fileswithout-match e --directoriesskip tivessem sido especificadas antes de quaisquer opções explícitas. As especificações das opções são separadas por espaços em branco. Uma barra invertida escapa do próximo caractere, portanto, ele pode ser usado para especificar uma opção contendo espaços em branco ou uma barra invertida. GREPCOLOR Esta variável especifica a cor usada para destacar o texto correspondente (não vazio). É depreciado em favor de GREPCOLORS. Mas ainda é suportado. O mt. Senhora . E mc capacidades de GREPCOLORS têm prioridade sobre ele. Só pode especificar a cor usada para realçar o texto não vazio correspondente em qualquer linha correspondente (uma linha selecionada quando a opção de linha de comando - v é omitida ou uma linha de contexto quando - v é especificado). O padrão é 0131. Que significa um texto corajoso do primeiro plano vermelho no fundo padrão do terminal39s. GREPCOLORS Especifica as cores e outros atributos usados para destacar várias partes da saída. Seu valor é uma lista separada por dois pontos de recursos que assume o padrão ms0131: mc0131: sl: cx: fn35: ln32: bn32: se36 com as capacidades booleanas rv e ne omitidas (isto é, falsas). Os recursos suportados são os seguintes. Sl SGR para linhas inteiras selecionadas (ou seja, linhas de correspondência quando a opção de linha de comando - v é omitida ou linhas não correspondentes quando - v é especificado). Se, no entanto, a capacidade booleana rv ea opção de linha de comando - v forem especificadas, ela se aplica a linhas de correspondência de contexto. O padrão é vazio (ou seja, o par de cores padrão do terminal). Cx SGR para linhas inteiras de contexto (ou seja, linhas não correspondentes quando a opção de linha de comando - v é omitida ou linhas de correspondência quando - v é especificado). No entanto, se a capacidade booleana de rv e a opção de linha de comando - v forem especificadas, ela se aplicará às 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 dos recursos sl e cx quando a opção de linha de comando - v é especificada. O padrão é falso (ou seja, a capacidade é omitida). Mt0131 Subcadeia SGR para combinar texto não vazio 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 é especificado). Definir isso é equivalente a definir ms e mc de uma vez para o mesmo valor. O padrão é um texto em negrito em primeiro plano sobre o fundo da linha atual. Ms0131 SGR substring para a correspondência de texto não vazio em uma linha selecionada. (Isso é usado somente quando a opção de linha de comando - v é omitida.) O efeito da capacidade sl (ou cx se rv) permanece ativo quando isso entra em ação. O padrão é um texto em negrito em primeiro plano sobre o fundo da linha atual. Mc0131 Subcadeia SGR para correspondência de texto não vazio em uma linha de contexto. (Isso é usado somente quando a opção de linha de comando - v é especificada.) O efeito do recurso cx (ou sl if rv) permanece ativo quando isso entra em ação. O padrão é um texto em negrito em primeiro plano sobre o fundo da linha atual. Fn35 Subcadeia SGR para nomes de arquivo prefixando qualquer linha de conteúdo. O padrão é um primeiro plano de texto magenta sobre o fundo padrão do terminal. Ln32 SGR substring para números de linha prefixando qualquer linha de conteúdo. O padrão é um primeiro plano de texto verde sobre o fundo padrão do terminal. Bn32 Subcadeia SGR para deslocamentos de bytes prefixando qualquer linha de conteúdo. O padrão é um primeiro plano de texto verde sobre o fundo padrão do terminal. Se36 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 o contexto diferente de zero é especificado (-). O padrão é um primeiro plano de texto ciano sobre o fundo padrão do terminal. Ne Valor booleano que impede a limpeza até o final da linha usando Apagar na Linha (EL) para a Direita (33K) cada vez que um item colorido termina. Isso é necessário em terminais em que o EL não é suportado. Por outro lado, é útil em terminais para os quais a capacidade de terminologia booleana de backcolorerase (bce) não se aplica, quando as cores de realce escolhidas não afectam o fundo, ou quando EL é demasiado lento ou provoca demasiado cintilação. O padrão é falso (ou seja, a capacidade é omitida). Note que os recursos booleanos não têm. parte. Eles são omitidos (isto é, falsos) por padrão e tornam-se verdadeiros quando especificados. Consulte a seção Select Graphic Rendition (SGR) na documentação do terminal de texto que é usado para valores permitidos e seu significado como atributos de caracteres. Esses valores de substring são inteiros em representação decimal e podem ser concatenados com ponto-e-vírgula. Grep cuida de montar o resultado em uma seqüência SGR completa (33 m). Os valores comuns para concatenar incluem 1 para negrito, 4 para sublinhado, 5 para piscar, 7 para inverso, 39 para a cor de primeiro plano padrão, 30 para 37 para cores de primeiro plano, 90 para 97 para cores de primeiro plano de 16 cores, 3850 para 385255 para 88 Cores de plano de fundo de cores de 256 cores, 49 para cores de plano de fundo padrão, 40 para 47 para cores de plano de fundo, 100 para 107 para cores de plano de fundo de cores de 16 cores e 4850 para 485255 para cores de fundo de 88 cores e cores de 256 cores. LCALL. LCCOLLATE. LANG Estas variáveis especificam o locale para a categoria LCCOLLATE, que determina a seqüência de agrupamento usada para interpretar expressões de intervalo como a-z. LCALL. LCCTYPE. LANG Estas variáveis especificam o locale para a categoria LCCTYPE, que determina o tipo de caracteres, p. Quais caracteres são espaços em branco. LCALL. LCMESSAGES. LANG Estas variáveis especificam a localidade para a categoria LCMESSAGES, que determina o idioma que grep usa para mensagens. A localidade C padrão usa mensagens em inglês americano. POSIXLYCORRECT Se definido, grep se comporta como POSIX.2 requer o contrário, grep se comporta mais como outros programas GNU. O POSIX.2 requer que as opções que seguem nomes de arquivo devem ser tratadas como nomes de arquivos por padrão, tais opções são permutadas para a frente da lista de operandos e são tratadas como opções. Além disso, POSIX.2 exige que as opções não reconhecidas sejam diagnosticadas como ilegais3939, mas como elas não são realmente contra a lei, o padrão é diagnosticá-las como inválido3939. POSIXLYCORRECT também desativa N GNUnonoptionargvflags. Descrito abaixo. N GNUnonoptionargvflags (Aqui N é grep 39s numeric process ID.) Se o i-ésimo caractere desse valor de variável de ambiente for 1. Não considere o i-ésimo operando de grep como uma opção, mesmo que pareça ser um. Um shell pode colocar essa variável no ambiente para cada comando que ele executa, especificando quais operandos são os resultados de expansão de curinga de nome de arquivo e, portanto, não devem ser tratados como opções. Esse comportamento está disponível somente com a biblioteca C GNU e somente quando POSIXLYCORRECT não está definido. EXIT STATUS O status de saída é 0 se as linhas selecionadas forem encontradas e 1 se não for encontrado. Se ocorrer um erro, o estado de saída é 2. (Nota: o código de tratamento de erros POSIX deve verificar 39239 ou superior.) Partilhar esta página:
No comments:
Post a Comment