Saturday 18 November 2017

Grep no binário opção


Grep - Unix, Linux Command Recurse em diretórios saltar arquivo correspondência PATTERN. Suprimir mensagens de erro sobre arquivos inexistentes ou ilegíveis. Nota de portabilidade: ao contrário do GNU grep. O grep tradicional não estava em conformidade com o POSIX.2, porque o grep tradicional não possuía uma opção - q e sua opção - s se comportava como a opção GNU grep rsquos - q. Os scripts de shell destinados a serem portáveis ​​ao grep tradicional devem evitar ambos - q e - s e devem redirecionar a saída para devnull em vez disso. 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, ele tira 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 ​​para o mecanismo de correspondência verbatim se o arquivo for um arquivo de texto com pares CRLF 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. Denunciar offsets 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 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 é usada, não tem efeito em plataformas diferentes do MS-DOS e do MS-Windows. Imprime o número da versão de grep para o erro padrão. Esse número de versão deve ser incluído em todos os relatórios de bugs (veja abaixo). Inverter o sentido de correspondência, para selecionar linhas não correspondentes. Selecione apenas 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, ele deve ser no final da linha ou seguido por um carácter constituinte de não-palavra. Os caracteres constituintes da palavra são letras, dígitos e sublinhado. Selecione apenas os jogos que correspondem exatamente à linha inteira. Sinônimo obsoleto para - i. 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 arquivo 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. Para Pesquisar a string dada em um único arquivo test. sh chat test. sh binbash fun () echo Este é um teste. Terminar o script do shell com a mensagem de sucesso exit 1 do arquivo acima grep exit: grep exit demofile Para verificar a string dada em vários arquivos: neste caso test. sh e test1.sh chat test. sh binbash fun () echo Este é um teste. Terminar o nosso shell script com mensagem de sucesso exit 1 cat test1.sh binbash fun () echo Este é um test1. Terminar nosso script shell com mensagem de sucesso exit 0 grep exit em ambos os arquivos test. sh e test1.sh: test1.sh: exit 0 test. sh: exit 1 Para pesquisa case-sensitive usando grep - i, adicionado EXIT no test1.sh cat Test1.sh binbash fun () echo Este é um test1. Terminar o nosso shell script com mensagem de sucesso, EXIT com 0 saída 0 grep saída test1.sh test1.sh: saída 0 grep - i teste de saída test1.sh: Terminar o nosso shell script com mensagem de sucesso, EXIT com 0 test1.sh: exit 0 Duas linhas com a opção - i, como seu caso insensitive. grep, egrep, fgrep - 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 o nome do arquivo - for dado) Linhas que contenham uma correspondência para o determinado PATTERN. Por padrão, grep imprime as linhas correspondentes. Além disso, dois programas variantes egrep e fgrep estão disponíveis. Egrep é o mesmo que grep - E. Fgrep é o mesmo que grep - F. - A NUM. --after-context NUM Imprimir NUM linhas de contexto à direita após linhas de correspondência. - uma . --text Processar um arquivo binário como se fosse texto isso é equivalente à opção --binary-filestext. - B NUM. --before-context NUM Imprimir NUM linhas de contexto antes de linhas de correspondência. - C NUM, - NUM. --context NUM Imprimir NUM linhas (padrão 2) do contexto de saída. - b. --byte-offset Imprime o deslocamento de bytes dentro do arquivo de entrada antes de cada linha de saída. --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 emite 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. - 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 (veja abaixo), contagem de linhas não correspondentes. - 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. - E. --extended-regexp Interpretar PATTERN como uma expressão regular estendida (veja abaixo). - e TESTE PADRÃO. --regexp PATTERN Use PATTERN como o padrão útil para proteger padrões começando com -. - F. --fixed-strings Interprete PATTERN como uma lista de strings fixos, separados por newlines, qualquer um dos quais deve ser correspondido. - f ARQUIVO. --file FILE Obter padrões de FILE. Um por linha. O arquivo vazio contém zero padrões e, portanto, nada corresponde. - G. --basic-regexp Interpretar PATTERN como uma expressão regular básica (veja abaixo). Esse é o padrão. - H. --with-filename Imprime o nome do arquivo para cada correspondência. - h. --no-filename Suprime o prefixo de nomes de arquivo na saída quando vários arquivos são pesquisados. --help Exibe uma breve mensagem de ajuda. - I Processar um arquivo binário como se ele não tivesse dados correspondentes, isso é equivalente à opção --binary-fileswithout-match. - Eu . --ignore-case Ignore as distinções de caso no PATTERN e nos arquivos de entrada. - EU . --files-without-match Suprima a saída normal em vez disso, imprima o nome de cada arquivo de entrada do qual nenhuma saída normalmente teria sido impressa. A verificaçã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 verificação será interrompida no primeiro jogo. --mmap Se possível, use a chamada de sistema mmap (2) para ler a entrada, em vez da chamada padrão do sistema read (2). Em algumas situações, --mmap produz um melhor desempenho. No entanto, --mmap pode causar comportamento indefinido (incluindo os dumps de núcleo) se um arquivo de entrada encolher enquanto grep está operando, ou se ocorrer um erro de E / S. - n. --line-number Prefixo cada linha de saída com o número de linha dentro de seu arquivo de entrada. - q. --quieto . --silent Quiet suprime a saída normal. A verificação será interrompida no primeiro jogo. Veja também a opção - s ou --no-messages abaixo. - r. --recursive Leia todos os arquivos em cada diretório, recursivamente isso é equivalente à opção - d recurse. - s. --no-messages Suprime mensagens de erro sobre arquivos inexistentes ou ilegíveis. Nota de portabilidade: ao contrário do GNU grep. Grep tradicional não estava em conformidade com POSIX.2. Porque o grep tradicional carecia de uma opção - q e sua opção - s se comportava como a opção GNU grep s - q. Os scripts de shell destinados a serem portáveis ​​ao grep tradicional devem evitar ambos - q e - s e devem redirecionar a saída para devnull em vez disso. - VOCÊ . --binary Trata o (s) 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, ele tira 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 CRLF 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. - 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 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 é usada, não tem efeito em plataformas diferentes do MS-DOS e do MS-Windows. - V. --version Imprime o número da versão de grep para o erro padrão. Esse número de versão deve ser incluído em todos os relatórios de bugs (veja abaixo). - v. --invert-match Inverter o sentido de correspondência, para selecionar linhas não correspondentes. - 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, ele deve ser no final da linha ou seguido por um carácter constitutivo 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. - y Sinônimo obsoleto para - i. - 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 arquivo 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. 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 duas versões diferentes da sintaxe da expressão regular: básica e estendida. No GNU grep. Não há nenhuma diferença na funcionalidade disponível usando qualquer sintaxe. 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. 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 metacaracteres com significado especial pode ser citado precedendo-o com uma barra invertida. Uma lista de caracteres fechados por e corresponde a qualquer caractere na lista se o primeiro caractere da lista é o cursor, em seguida, ele corresponde a qualquer caractere não na lista. Por exemplo, a expressão regular 0123456789 corresponde a qualquer dígito único. Um intervalo de caracteres pode ser especificado dando o primeiro e último caracteres, separados por um hífen. Finalmente, determinadas classes nomeadas de caracteres são predefinidas. Seus nomes são auto explicativos, e eles são: alnum:. : Alfa:. : Cntrl:. : Digit:. :gráfico: . :mais baixo: . :impressão: . : Punct:. : Espaço:. : Superior:. E: xdigit :. Por exemplo,: alnum: significa 0-9A-Za-z. Exceto que a última forma depende da localidade POSIX e da codificação de caracteres ASCII, enquanto a primeira é independente do local e do conjunto de caracteres. (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 lista de colchetes.) A maioria dos metacaracteres perde seu significado especial dentro das listas. 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 período . Corresponde a qualquer caractere único. O símbolo w é um sinônimo de: alnum: e W é um sinônimo de: alnum. O caret eo sinal de dólar são metacaracteres que correspondem, respectivamente, à cadeia vazia no início e no final de uma linha. Os símbolos lt e gt correspondem respectivamente à cadeia 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. Uma expressão regular pode ser seguida por um dos vários operadores de repetição: O item anterior é 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. Duas expressões regulares podem ser concatenadas a expressão regular resultante corresponde a qualquer string formada por concatenação de duas substrings que correspondem, respectivamente, às subexpressões concatenadas. Duas expressões regulares podem ser unidas pelo operador infix a expressão regular resultante corresponde a qualquer string correspondente a qualquer subexpressão. A repetição tem precedência sobre a concatenação, que por sua vez tem precedência sobre a alternância. Uma subexpressão inteira pode ser incluída entre parênteses para substituir essas regras de precedência. A referência negativa n. Onde n é um único dígito, corresponde à subcadeia previamente combinada pela nª subexpressão entre parênteses da expressão regular. Nas expressões regulares básicas os metacaracteres. . . . (. E) perdem seu significado especial em vez de usar as versões backslashed. . . . (. E). O egrep tradicional não suportava o metacaracteres, e algumas implementações egrep suportam em vez disso, então os scripts portáteis devem evitar nos padrões egrep e devem usar para corresponder a um literal. GNU egrep 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 shell egrep procura a cadeia de dois caracteres em vez de relatar um erro de sintaxe na expressão regular. POSIX.2 permite este comportamento como uma extensão, mas os scripts portáteis devem evitá-lo. VARIÁVEIS AMBIENTAIS GREPOPTIONS Esta variável especifica as opções padrão a serem colocadas na frente de qualquer opção explícita. Por exemplo, se GREPOPTIONS for - binário-fileswithout-match --directoriesskip. 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 o próximo caractere, portanto, ele pode ser usado para especificar uma opção contendo espaço em branco ou uma barra invertida. LCALL. LCMESSAGES. LANG Estas variáveis ​​especificam a localidade LCMESSAGES, que determina o idioma que grep usa para mensagens. A localidade é determinada pela primeira dessas variáveis ​​que é definida. O inglês americano é usado se nenhuma dessas variáveis ​​de ambiente estiver definida, ou se o catálogo de mensagens não estiver instalado ou se o grep não foi compilado com NLS (National Language Support). LCALL. LCCTYPE. LANG Estas variáveis ​​especificam a localidade LCCTYPE, que determina o tipo de caracteres, p. Quais caracteres são espaços em branco. A localidade é determinada pela primeira dessas variáveis ​​que é definida. A localidade POSIX é usada se nenhuma dessas variáveis ​​de ambiente estiver definida, ou se o catálogo de localidade não estiver instalado, ou se grep não foi compilado com suporte de idioma nacional (NLS). 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 ilegais, mas como elas não são realmente contra a lei, o padrão é diagnosticá-las como inválidas. POSIXLYCORRECT também desativa N GNUnonoptionargvflags. Descrito abaixo. N GNUnonoptionargvflags (Aqui N é grep s numérico ID do processo.) Se o i-ésimo caractere deste valor de variáveis ​​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. DIAGNÓSTICO Normalmente, o estado de saída é 0 se os resultados foram encontrados e 1 se não foram encontradas correspondências. (A opção - v inverte o sentido do status de saída.) O status de saída é 2 se houver erros de sintaxe no padrão, arquivos de entrada inacessíveis ou outros erros do sistema. Envie um e-mail para bug-gnu-utilsgnu. org. Certifique-se de incluir a palavra grep em algum lugar no campo Assunto :. Grandes contagens de repetição na construção m, n podem fazer com que o grep use muita memória. Além disso, certas outras expressões regulares obscuras requerem tempo e espaço exponenciais e podem causar grep a ficar sem memória. Backreferences são muito lentos, e podem exigir tempo exponencial. Linux e Grep greix unix 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 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. Executar 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 curinga Se tivermos vários arquivos para pesquisar, podemos pesquisar todos eles usando um 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 nome de arquivo ou 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á. Assim, 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 poderosa ferramenta 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 rodar 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. Neste modo, grep avalia sua seqüência de caracteres PATTERN como uma string fixa mdash cada caractere em sua seqüência de caracteres é 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 contiver 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 encontrar um diretório, ele atravessará esse diretório e continuará pesquisando. (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 sinalizadores 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, --mmap produz 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 está operando, ou se ocorrer um erro de E / S. 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, ele tira 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 CRLF 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 terminado por um byte zero (o caractere ASCII NUL) em vez de uma nova linha. 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 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. Ele 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, determinadas 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:

No comments:

Post a Comment