Grep é um utilitário Linux / UNIX exclusivo e muito poderoso que permite pesquisar uma string específica em um ou vários arquivos em um sistema operacional GNU / Linux. É um software de linha de comando que foi projetado desde o início até a saída apenas as linhas correspondentes. O comando Grep é composto por seleção e interpretação do regexp, controle de saída, controle de contexto e várias opções.
Para usar o Grep a partir da linha de comando, você terá que digitar o & lsquo; grep --help & rsquo; Comando em um emulador de terminal ou diretamente no console do Linux, que exibirá todas as opções disponíveis, bem como vários exemplos sobre como usar a ferramenta para encontrar um determinado padrão em um arquivo. O exemplo de uso padrão fornecido pelo comando acima é & ldquo; grep [OPTION] ... PATTERN [FILE] ... & rdquo;
Eu quero ver um exemplo!
O exemplo mais básico é o & ldquo; grep -i 'hello world' menu.h main.c & rdquo ;, onde & ldquo; -i & rdquo; É o [OPÇÃO] & ldquo; hello world & rdquo; É o [PATTERN] e o & ldquo; menu.h & rdquo; E & ldquo; menu.c & rdquo; São os [ARQUIVO]. Este comando simples é usado para pesquisar o & ldquo; hello world & rdquo; Padrão em cada um dos arquivos fornecidos. Tenha em mente, porém, que [PATTERN] é, por padrão, uma Expressão Regular Básica (BRE).
Por favor, note que, ao usar o & ldquo; - & rdquo; Símbolo para a seqüência [FILE] no exemplo acima, a Grep irá ler automaticamente a entrada padrão. Além disso, se nenhum [FILE] for especificado, ele lerá o diretório atual.
Isso é executado na minha caixa do Linux?
A Grep é considerada pelos desenvolvedores Linux em todo o mundo como um utilitário UNIX essencial, o que significa que está instalado por padrão em quase todos os sistemas operacionais GNU / Linux. Se por algum motivo estranho, sua caixa Linux não possui a ferramenta grep instalada, você poderá instalá-la facilmente nos repositórios de software padrão da sua distribuição. Ambas as arquiteturas de 64 bits e 32 bits são suportadas neste momento.
O que é novo nesta versão:
- Melhorias:
- O desempenho foi muito melhorado para pesquisar arquivos contendo furos, em plataformas onde o sinalizador SEEK_DATA da lseek funciona de forma eficiente.
- O desempenho melhorou para rejeitar dados que não podem corresponder até a primeira parte de um padrão não trivial.
- O desempenho melhorou em cordas muito longas em padrões.
- Se um arquivo contiver dados incorretamente codificados para a localidade atual, e isso é descoberto antes que qualquer conteúdo do arquivo seja exibido, o grep agora trata o arquivo como binário.
- grep -P não mais relata um erro e sai quando dados dados inválidos UTF-8. Em vez disso, considera que os dados não são correspondentes.
- Correções de erros:
- grep não altera mais os padrões que contém w ou W em locais multibyte.
- grep falharia em contar novas linhas internamente quando operar em locais de multibyte não UTF8, levando-o a imprimir potencialmente muitas linhas que não correspondiam. E.g., o comando, "seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Iria imprimir isto: 1: 1 2 3 4 5 6 7 8 9 10, o que implica que a partida, "10" Estava na linha 1. [bug introduzido no grep-2.19]
- grep -F -x -o não imprime mais uma nova linha extra para cada partida. [Bug introduzido no grep-2.19]
- grep em uma localidade multibyte não UTF8 pode combinar erroneamente no meio de um caractere multibyte ao usar um alternativo '^' - ancorado em um padrão, levando-o a imprimir linhas não correspondentes. [Bug presente desde "início" & quot;]
- grep -FY não deixa de corresponder nas localidades multibyte não-UTF8 como Shift-JIS, quando a entrada contém um caractere de 2 bytes, XY, seguido do padrão de pesquisa de um único byte, Y. grep encontraria o primeiro , Correspondência de middle-of-multibyte "Y" e, em seguida, avança por engano um ponteiro interno um byte muito longe, saltando sobre o alvo "Y" Logo depois disso. [Bug introduzido no grep-2.19]
- grep -E rejeitado inigualável ')', em vez de tratá-lo como ')'. [Bug presente desde "início" & quot;]
- No NetBSD, grep -r não mais relatórios e tipo de arquivo inapropriado ou formato & quot; Quando se recusa a seguir um link simbólico. [Bug introduzido no grep-2.12]
- Alterações no comportamento:
- A variável de ambiente GREP_OPTIONS agora é obsolescente, e grep agora avisa se ela é usada. Use um alias ou um script em vez disso.
- Em locais com codificações de caracteres multibyte diferentes de UTF-8, grep -P agora relata um erro e sai em vez de se comportar mal.
- Ao pesquisar dados binários, grep agora pode tratar bytes não-texto como terminadores de linha. Isso pode aumentar significativamente o desempenho.
- grep -z já não trata automaticamente o byte ' 200' como dados binários.
O que há de novo na versão 3.0:
- Melhorias:
- O desempenho foi muito melhorado para pesquisar arquivos contendo furos, em plataformas onde o sinalizador SEEK_DATA da lseek funciona de forma eficiente.
- O desempenho melhorou para rejeitar dados que não podem corresponder até a primeira parte de um padrão não trivial.
- O desempenho melhorou em cordas muito longas em padrões.
- Se um arquivo contiver dados incorretamente codificados para a localidade atual, e isso é descoberto antes que qualquer conteúdo do arquivo seja exibido, o grep agora trata o arquivo como binário.
- grep -P não mais relata um erro e sai quando dados dados inválidos UTF-8. Em vez disso, considera que os dados não são correspondentes.
- Correções de erros:
- grep não altera mais os padrões que contém w ou W em locais multibyte.
- grep falharia em contar novas linhas internamente quando operar em locais de multibyte não UTF8, levando-o a imprimir potencialmente muitas linhas que não correspondiam. E.g., o comando, "seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Iria imprimir isto: 1: 1 2 3 4 5 6 7 8 9 10, o que implica que a partida, "10" Estava na linha 1. [bug introduzido no grep-2.19]
- grep -F -x -o não imprime mais uma nova linha extra para cada partida. [Bug introduzido no grep-2.19]
- grep em uma localidade multibyte não UTF8 pode combinar erroneamente no meio de um caractere multibyte ao usar um alternativo '^' - ancorado em um padrão, levando-o a imprimir linhas não correspondentes. [Bug presente desde "início" & quot;]
- grep -FY não deixa de corresponder nas localidades multibyte não-UTF8 como Shift-JIS, quando a entrada contém um caractere de 2 bytes, XY, seguido do padrão de pesquisa de um único byte, Y. grep encontraria o primeiro , Correspondência de middle-of-multibyte "Y" e, em seguida, avança por engano um ponteiro interno um byte muito longe, saltando sobre o alvo "Y" Logo depois disso. [Bug introduzido no grep-2.19]
- grep -E rejeitado inigualável ')', em vez de tratá-lo como ')'. [Bug presente desde "início" & quot;]
- No NetBSD, grep -r não mais relatórios e tipo de arquivo inapropriado ou formato & quot; Quando se recusa a seguir um link simbólico. [Bug introduzido no grep-2.12]
- Alterações no comportamento:
- A variável de ambiente GREP_OPTIONS agora é obsolescente, e grep agora avisa se ela é usada. Use um alias ou um script em vez disso.
- Em locais com codificações de caracteres multibyte diferentes de UTF-8, grep -P agora relata um erro e sai em vez de se comportar mal.
- Ao pesquisar dados binários, grep agora pode tratar bytes não-texto como terminadores de linha. Isso pode aumentar significativamente o desempenho.
- grep -z já não trata automaticamente o byte ' 200' como dados binários.
O que é novo na versão 2.28:
- Melhorias:
- O desempenho foi muito melhorado para pesquisar arquivos contendo furos, em plataformas onde o sinalizador SEEK_DATA da lseek funciona de forma eficiente.
- O desempenho melhorou para rejeitar dados que não podem corresponder até a primeira parte de um padrão não trivial.
- O desempenho melhorou em cordas muito longas em padrões.
- Se um arquivo contiver dados incorretamente codificados para a localidade atual, e isso é descoberto antes que qualquer conteúdo do arquivo seja exibido, o grep agora trata o arquivo como binário.
- grep -P não mais relata um erro e sai quando dados dados inválidos UTF-8. Em vez disso, considera que os dados não são correspondentes.
- Correções de erros:
- grep não altera mais os padrões que contém w ou W em locais multibyte.
- grep falharia em contar novas linhas internamente quando operar em locais de multibyte não UTF8, levando-o a imprimir potencialmente muitas linhas que não correspondiam. E.g., o comando, "seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Iria imprimir isto: 1: 1 2 3 4 5 6 7 8 9 10, o que implica que a partida, "10" Estava na linha 1. [bug introduzido no grep-2.19]
- grep -F -x -o não imprime mais uma nova linha extra para cada partida. [Bug introduzido no grep-2.19]
- grep em uma localidade multibyte não UTF8 pode combinar erroneamente no meio de um caractere multibyte ao usar um alternativo '^' - ancorado em um padrão, levando-o a imprimir linhas não correspondentes. [Bug presente desde "início" & quot;]
- grep -FY não deixa de corresponder nas localidades multibyte não-UTF8 como Shift-JIS, quando a entrada contém um caractere de 2 bytes, XY, seguido do padrão de pesquisa de um único byte, Y. grep encontraria o primeiro , Correspondência de middle-of-multibyte "Y" e, em seguida, avança por engano um ponteiro interno um byte muito longe, saltando sobre o alvo "Y" Logo depois disso. [Bug introduzido no grep-2.19]
- grep -E rejeitado inigualável ')', em vez de tratá-lo como ')'. [Bug presente desde "início" & quot;]
- No NetBSD, grep -r não mais relatórios e tipo de arquivo inapropriado ou formato & quot; Quando se recusa a seguir um link simbólico. [Bug introduzido no grep-2.12]
- Alterações no comportamento:
- A variável de ambiente GREP_OPTIONS agora é obsolescente, e grep agora avisa se ela é usada. Use um alias ou um script em vez disso.
- Em locais com codificações de caracteres multibyte diferentes de UTF-8, grep -P agora relata um erro e sai em vez de se comportar mal.
- Ao pesquisar dados binários, grep agora pode tratar bytes não-texto como terminadores de linha. Isso pode aumentar significativamente o desempenho.
- grep -z já não trata automaticamente o byte ' 200' como dados binários.
O que é novo na versão 2.27:
- Melhorias:
- O desempenho foi muito melhorado para pesquisar arquivos contendo furos, em plataformas onde o sinalizador SEEK_DATA da lseek funciona de forma eficiente.
- O desempenho melhorou para rejeitar dados que não podem corresponder até a primeira parte de um padrão não trivial.
- O desempenho melhorou em cordas muito longas em padrões.
- Se um arquivo contiver dados incorretamente codificados para a localidade atual, e isso é descoberto antes que qualquer conteúdo do arquivo seja exibido, o grep agora trata o arquivo como binário.
- grep -P não mais relata um erro e sai quando dados dados inválidos UTF-8. Em vez disso, considera que os dados não são correspondentes.
- Correções de erros:
- grep não altera mais os padrões que contém w ou W em locais multibyte.
- grep falharia em contar novas linhas internamente quando operar em locais de multibyte não UTF8, levando-o a imprimir potencialmente muitas linhas que não correspondiam. E.g., o comando, "seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Iria imprimir isto: 1: 1 2 3 4 5 6 7 8 9 10, o que implica que a partida, "10" Estava na linha 1. [bug introduzido no grep-2.19]
- grep -F -x -o não imprime mais uma nova linha extra para cada partida. [Bug introduzido no grep-2.19]
- grep em uma localidade multibyte não UTF8 pode combinar erroneamente no meio de um caractere multibyte ao usar um alternativo '^' - ancorado em um padrão, levando-o a imprimir linhas não correspondentes. [Bug presente desde "início" & quot;]
- grep -FY não deixa de corresponder nas localidades multibyte não-UTF8 como Shift-JIS, quando a entrada contém um caractere de 2 bytes, XY, seguido do padrão de pesquisa de um único byte, Y. grep encontraria o primeiro , Correspondência de middle-of-multibyte "Y" e, em seguida, avança por engano um ponteiro interno um byte muito longe, saltando sobre o alvo "Y" Logo depois disso. [Bug introduzido no grep-2.19]
- grep -E rejeitado inigualável ')', em vez de tratá-lo como ')'. [Bug presente desde "início" & quot;]
- No NetBSD, grep -r não mais relatórios e tipo de arquivo inapropriado ou formato & quot; Quando se recusa a seguir um link simbólico. [Bug introduzido no grep-2.12]
- Alterações no comportamento:
- A variável de ambiente GREP_OPTIONS agora é obsolescente, e grep agora avisa se ela é usada. Use um alias ou um script em vez disso.
- Em locais com codificações de caracteres multibyte diferentes de UTF-8, grep -P agora relata um erro e sai em vez de se comportar mal.
- Ao pesquisar dados binários, grep agora pode tratar bytes não-texto como terminadores de linha. Isso pode aumentar significativamente o desempenho.
- grep -z já não trata automaticamente o byte ' 200' como dados binários.
O que é novo na versão 2.26:
- Melhorias:
- O desempenho foi muito melhorado para pesquisar arquivos contendo furos, em plataformas onde o sinalizador SEEK_DATA da lseek funciona de forma eficiente.
- O desempenho melhorou para rejeitar dados que não podem corresponder até a primeira parte de um padrão não trivial.
- O desempenho melhorou em cordas muito longas em padrões.
- Se um arquivo contiver dados incorretamente codificados para a localidade atual, e isso é descoberto antes que qualquer conteúdo do arquivo seja exibido, o grep agora trata o arquivo como binário.
- grep -P não mais relata um erro e sai quando dados dados inválidos UTF-8. Em vez disso, considera que os dados não são correspondentes.
- Correções de erros:
- grep não altera mais os padrões que contém w ou W em locais multibyte.
- grep falharia em contar novas linhas internamente quando operar em locais de multibyte não UTF8, levando-o a imprimir potencialmente muitas linhas que não correspondiam. E.g., o comando, "seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Iria imprimir isto: 1: 1 2 3 4 5 6 7 8 9 10, o que implica que a partida, "10" Estava na linha 1. [bug introduzido no grep-2.19]
- grep -F -x -o não imprime mais uma nova linha extra para cada partida. [Bug introduzido no grep-2.19]
- grep em uma localidade multibyte não UTF8 pode combinar erroneamente no meio de um caractere multibyte ao usar um alternativo '^' - ancorado em um padrão, levando-o a imprimir linhas não correspondentes. [Bug presente desde "início" & quot;]
- grep -FY não deixa de corresponder nas localidades multibyte não-UTF8 como Shift-JIS, quando a entrada contém um caractere de 2 bytes, XY, seguido do padrão de pesquisa de um único byte, Y. grep encontraria o primeiro , Correspondência de middle-of-multibyte "Y" e, em seguida, avança por engano um ponteiro interno um byte muito longe, saltando sobre o alvo "Y" Logo depois disso. [Bug introduzido no grep-2.19]
- grep -E rejeitado inigualável ')', em vez de tratá-lo como ')'. [Bug presente desde "início" & quot;]
- No NetBSD, grep -r não mais relatórios e tipo de arquivo inapropriado ou formato & quot; Quando se recusa a seguir um link simbólico. [Bug introduzido no grep-2.12]
- Alterações no comportamento:
- A variável de ambiente GREP_OPTIONS agora é obsolescente, e grep agora avisa se ela é usada. Use um alias ou um script em vez disso.
- Em locais com codificações de caracteres multibyte diferentes de UTF-8, grep -P agora relata um erro e sai em vez de se comportar mal.
- Ao pesquisar dados binários, grep agora pode tratar bytes não-texto como terminadores de linha. Isso pode aumentar significativamente o desempenho.
- grep -z já não trata automaticamente o byte ' 200' como dados binários.
O que é novo na versão 2.25:
- Melhorias:
- O desempenho foi muito melhorado para pesquisar arquivos contendo furos, em plataformas onde o sinalizador SEEK_DATA da lseek funciona de forma eficiente.
- O desempenho melhorou para rejeitar dados que não podem corresponder até a primeira parte de um padrão não trivial.
- O desempenho melhorou em cordas muito longas em padrões.
- Se um arquivo contiver dados incorretamente codificados para a localidade atual, e isso é descoberto antes que qualquer conteúdo do arquivo seja exibido, o grep agora trata o arquivo como binário.
- grep -P não mais relata um erro e sai quando dados dados inválidos UTF-8. Em vez disso, considera que os dados não são correspondentes.
- Correções de erros:
- grep não altera mais os padrões que contém w ou W em locais multibyte.
- grep falharia em contar novas linhas internamente quando operar em locais de multibyte não UTF8, levando-o a imprimir potencialmente muitas linhas que não correspondiam. E.g., o comando, "seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Iria imprimir isto: 1: 1 2 3 4 5 6 7 8 9 10, o que implica que a partida, "10" Estava na linha 1. [bug introduzido no grep-2.19]
- grep -F -x -o não imprime mais uma nova linha extra para cada partida. [Bug introduzido no grep-2.19]
- grep em uma localidade multibyte não UTF8 pode combinar erroneamente no meio de um caractere multibyte ao usar um alternativo '^' - ancorado em um padrão, levando-o a imprimir linhas não correspondentes. [Bug presente desde "início" & quot;]
- grep -FY não deixa de corresponder nas localidades multibyte não-UTF8 como Shift-JIS, quando a entrada contém um caractere de 2 bytes, XY, seguido do padrão de pesquisa de um único byte, Y. grep encontraria o primeiro , Correspondência de middle-of-multibyte "Y" e, em seguida, avança por engano um ponteiro interno um byte muito longe, saltando sobre o alvo "Y" Logo depois disso. [Bug introduzido no grep-2.19]
- grep -E rejeitado inigualável ')', em vez de tratá-lo como ')'. [Bug presente desde "início" & quot;]
- No NetBSD, grep -r não mais relatórios e tipo de arquivo inapropriado ou formato & quot; Quando se recusa a seguir um link simbólico. [Bug introduzido no grep-2.12]
- Alterações no comportamento:
- A variável de ambiente GREP_OPTIONS agora é obsolescente, e grep agora avisa se ela é usada. Use um alias ou um script em vez disso.
- Em locais com codificações de caracteres multibyte diferentes de UTF-8, grep -P agora relata um erro e sai em vez de se comportar mal.
- Ao pesquisar dados binários, grep agora pode tratar bytes não-texto como terminadores de linha. Isso pode aumentar significativamente o desempenho.
- grep -z já não trata automaticamente o byte ' 200' como dados binários.
O que é novo na versão 2.24:
- Melhorias:
- O desempenho foi muito melhorado para pesquisar arquivos contendo furos, em plataformas onde o sinalizador SEEK_DATA da lseek funciona de forma eficiente.
- O desempenho melhorou para rejeitar dados que não podem corresponder até a primeira parte de um padrão não trivial.
- O desempenho melhorou em cordas muito longas em padrões.
- Se um arquivo contiver dados incorretamente codificados para a localidade atual, e isso é descoberto antes que qualquer conteúdo do arquivo seja exibido, o grep agora trata o arquivo como binário.
- grep -P não mais relata um erro e sai quando dados dados inválidos UTF-8. Em vez disso, considera que os dados não são correspondentes.
- Correções de erros:
- grep não altera mais os padrões que contém w ou W em locais multibyte.
- grep falharia em contar novas linhas internamente quando operar em locais de multibyte não UTF8, levando-o a imprimir potencialmente muitas linhas que não correspondiam. E.g., o comando, "seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Iria imprimir isto: 1: 1 2 3 4 5 6 7 8 9 10, o que implica que a partida, "10" Estava na linha 1. [bug introduzido no grep-2.19]
- grep -F -x -o não imprime mais uma nova linha extra para cada partida. [Bug introduzido no grep-2.19]
- grep em uma localidade multibyte não UTF8 pode combinar erroneamente no meio de um caractere multibyte ao usar um alternativo '^' - ancorado em um padrão, levando-o a imprimir linhas não correspondentes. [Bug presente desde "início" & quot;]
- grep -FY não deixa de corresponder nas localidades multibyte não UTF8 como Shift-JIS, quando a entrada contém um caractere de 2 bytes, XY, seguido do padrão de pesquisa de um único byte, Y. grep encontraria o primeiro , Correspondência de middle-of-multibyte "Y" e, em seguida, avança por engano um ponteiro interno um byte muito longe, saltando sobre o alvo "Y" Logo depois disso. [Bug introduzido no grep-2.19]
- grep -E rejeitado inigualável ')', em vez de tratá-lo como ')'. [Bug presente desde "início" & quot;]
- No NetBSD, grep -r não mais relatórios e tipo de arquivo inapropriado ou formato & quot; Ao se recusar a seguir um link simbólico. [Bug introduzido no grep-2.12]
- Alterações no comportamento:
- A variável de ambiente GREP_OPTIONS agora é obsolescente, e grep agora avisa se ela é usada. Use um alias ou um script em vez disso.
- Em locais com codificações de caracteres multibyte diferentes de UTF-8, o grep -P agora relata um erro e sai em vez de comportar-se mal.
- Ao pesquisar dados binários, grep agora pode tratar bytes não-texto como terminadores de linha. Isso pode aumentar significativamente o desempenho.
- grep -z já não trata automaticamente o byte ' 200' como dados binários.
O que é novo na versão 2.23:
- Melhorias:
- O desempenho foi muito melhorado para pesquisar arquivos contendo furos, em plataformas onde o sinalizador SEEK_DATA da lseek funciona de forma eficiente.
- O desempenho melhorou para rejeitar dados que não podem corresponder até a primeira parte de um padrão não trivial.
- O desempenho melhorou em cordas muito longas em padrões.
- Se um arquivo contiver dados incorretamente codificados para a localidade atual, e isso é descoberto antes que qualquer conteúdo do arquivo seja exibido, o grep agora trata o arquivo como binário.
- grep -P não mais relata um erro e sai quando dados dados inválidos UTF-8. Em vez disso, considera que os dados não são correspondentes.
- Correções de erros:
- grep não altera mais os padrões que contém w ou W em locais multibyte.
- grep falharia em contar novas linhas internamente quando operar em locais de multibyte não UTF8, levando-o a imprimir potencialmente muitas linhas que não correspondiam. E.g., o comando, "seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Iria imprimir isto: 1: 1 2 3 4 5 6 7 8 9 10, o que implica que a partida, "10" Estava na linha 1. [bug introduzido no grep-2.19]
- grep -F -x -o não imprime mais uma nova linha extra para cada partida. [Bug introduzido no grep-2.19]
- grep em uma localidade multibyte não UTF8 pode combinar erroneamente no meio de um caractere multibyte ao usar um alternativo '^' - ancorado em um padrão, levando-o a imprimir linhas não correspondentes. [Bug presente desde "início" & quot;]
- grep -FY não deixa de corresponder nas localidades multibyte não-UTF8 como Shift-JIS, quando a entrada contém um caractere de 2 bytes, XY, seguido do padrão de pesquisa de um único byte, Y. grep encontraria o primeiro , Correspondência de middle-of-multibyte "Y" e, em seguida, avança por engano um ponteiro interno um byte muito longe, saltando sobre o alvo "Y" Logo depois disso. [Bug introduzido no grep-2.19]
- grep -E rejeitado inigualável ')', em vez de tratá-lo como ')'. [Bug presente desde "início" & quot;]
- No NetBSD, grep -r não mais relatórios e tipo de arquivo inapropriado ou formato & quot; Quando se recusa a seguir um link simbólico. [Bug introduzido no grep-2.12]
- Alterações no comportamento:
- A variável de ambiente GREP_OPTIONS agora é obsolescente, e grep agora avisa se ela é usada. Use um alias ou um script em vez disso.
- Em locais com codificações de caracteres multibyte diferentes de UTF-8, grep -P agora relata um erro e sai em vez de se comportar mal.
- Ao pesquisar dados binários, grep agora pode tratar bytes não-texto como terminadores de linha. Isso pode aumentar significativamente o desempenho.
- grep -z já não trata automaticamente o byte ' 200' como dados binários.
O que é novo na versão 2.22:
- Melhorias:
- O desempenho foi muito melhorado para pesquisar arquivos contendo furos, em plataformas onde o sinalizador SEEK_DATA da lseek funciona de forma eficiente.
- O desempenho melhorou para rejeitar dados que não podem corresponder até a primeira parte de um padrão não trivial.
- O desempenho melhorou em cordas muito longas em padrões.
- Se um arquivo contiver dados incorretamente codificados para a localidade atual, e isso é descoberto antes que qualquer conteúdo do arquivo seja exibido, o grep agora trata o arquivo como binário.
- grep -P não mais relata um erro e sai quando dados dados inválidos UTF-8. Em vez disso, considera que os dados não são correspondentes.
- Correções de erros:
- grep não altera mais os padrões que contém w ou W em locais multibyte.
- grep falharia em contar novas linhas internamente quando operar em locais de multibyte não UTF8, levando-o a imprimir potencialmente muitas linhas que não correspondiam. E.g., o comando, "seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Iria imprimir isto: 1: 1 2 3 4 5 6 7 8 9 10, o que implica que a partida, "10" Estava na linha 1. [bug introduzido no grep-2.19]
- grep -F -x -o não imprime mais uma nova linha extra para cada partida. [Bug introduzido no grep-2.19]
- grep em uma localidade multibyte não UTF8 pode combinar erroneamente no meio de um caractere multibyte ao usar um alternativo '^' - ancorado em um padrão, levando-o a imprimir linhas não correspondentes. [Bug presente desde "início" & quot;]
- grep -FY não deixa de corresponder nas localidades multibyte não-UTF8 como Shift-JIS, quando a entrada contém um caractere de 2 bytes, XY, seguido do padrão de pesquisa de um único byte, Y. grep encontraria o primeiro , Correspondência de middle-of-multibyte "Y" e, em seguida, avança por engano um ponteiro interno um byte muito longe, saltando sobre o alvo "Y" Logo depois disso. [Bug introduzido no grep-2.19]
- grep -E rejeitado inigualável ')', em vez de tratá-lo como ')'. [Bug presente desde "início" & quot;]
- No NetBSD, grep -r não mais relatórios e tipo de arquivo inapropriado ou formato & quot; Quando se recusa a seguir um link simbólico. [Bug introduzido no grep-2.12]
- Alterações no comportamento:
- A variável de ambiente GREP_OPTIONS agora é obsolescente, e grep agora avisa se ela é usada. Use um alias ou um script em vez disso.
- Em locais com codificações de caracteres multibyte diferentes de UTF-8, grep -P agora relata um erro e sai em vez de se comportar mal.
- Ao pesquisar dados binários, grep agora pode tratar bytes não-texto como terminadores de linha. Isso pode aumentar significativamente o desempenho.
- grep -z já não trata automaticamente o byte ' 200' como dados binários.
O que é novo na versão 2.21:
- Melhorias:
- O desempenho foi muito melhorado para pesquisar arquivos contendo furos, em plataformas onde o sinalizador SEEK_DATA da lseek funciona de forma eficiente.
- O desempenho melhorou para rejeitar dados que não podem corresponder até a primeira parte de um padrão não trivial.
- O desempenho melhorou em cordas muito longas em padrões.
- Se um arquivo contiver dados incorretamente codificados para a localidade atual, e isso é descoberto antes que qualquer conteúdo do arquivo seja exibido, o grep agora trata o arquivo como binário.
- grep -P não mais relata um erro e sai quando dados dados inválidos UTF-8. Em vez disso, considera que os dados não são correspondentes.
- Correções de erros:
- grep não altera mais os padrões que contém w ou W em locais multibyte.
- grep falharia em contar novas linhas internamente quando operar em locais de multibyte não UTF8, levando-o a imprimir potencialmente muitas linhas que não correspondiam. E.g., o comando, "seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Iria imprimir isto: 1: 1 2 3 4 5 6 7 8 9 10, o que implica que a partida, "10" Estava na linha 1. [bug introduzido no grep-2.19]
- grep -F -x -o não imprime mais uma nova linha extra para cada partida. [Bug introduzido no grep-2.19]
- grep em uma localidade multibyte não UTF8 pode combinar erroneamente no meio de um caractere multibyte ao usar um alternativo '^' - ancorado em um padrão, levando-o a imprimir linhas não correspondentes. [Bug presente desde "início" & quot;]
- grep -FY não deixa de corresponder nas localidades multibyte não UTF8 como Shift-JIS, quando a entrada contém um caractere de 2 bytes, XY, seguido do padrão de pesquisa de um único byte, Y. grep encontraria o primeiro , Correspondência de middle-of-multibyte "Y" e, em seguida, avança por engano um ponteiro interno um byte muito longe, saltando sobre o alvo "Y" Logo depois disso. [Bug introduzido no grep-2.19]
- grep -E rejeitado inigualável ')', em vez de tratá-lo como ')'. [Bug presente desde "início" & quot;]
- No NetBSD, grep -r não mais relatórios e tipo de arquivo inapropriado ou formato & quot; Ao se recusar a seguir um link simbólico. [Bug introduzido no grep-2.12]
- Alterações no comportamento:
- A variável de ambiente GREP_OPTIONS agora é obsolescente, e grep agora avisa se ela é usada. Use um alias ou um script em vez disso.
- Em locais com codificações de caracteres multibyte diferentes de UTF-8, o grep -P agora relata um erro e sai em vez de comportar-se mal.
- Ao pesquisar dados binários, grep agora pode tratar bytes não-texto como terminadores de linha. Isso pode aumentar significativamente o desempenho.
- grep -z já não trata automaticamente o byte ' 200' como dados binários.
O que é novo na versão 2.20:
- Correções de erro:
- grep --max-count = N FILE não deixa de ler após a partida Nth. Isto é, enquanto o grep ainda imprimiria a saída correta, continuaria lendo até o final da entrada e, portanto, potencialmente para sempre. [Bug introduzido no grep-2.19]
- Um comando como echo aa | grep -E 'a (b $ | c $)' informaria equivocadamente a entrada como uma linha correspondente. [Bug introduzido no grep-2.19]
- Alterações no comportamento:
- grep --exclude-dir = 'FOO /' agora exclui o diretório FOO. Anteriormente, a barra diagonal significava que a opção era ineficaz.
Comentários não encontrado