qual é o intervalo máximo de caracteres do grep no bash?

0

Qual é o intervalo máximo de caracteres do grep no bash? Por quanto tempo uma string pode ser usada como entrada para pesquisar usando o comando grep?

    
por KHAN irfan 13.04.2017 / 09:29

1 resposta

2

O comprimento máximo dos argumentos para a função exec() (usada pelo shell para iniciar um processo) é definido pelo valor de ARG_MAX no cabeçalho limits.h . Esse valor também está disponível por meio do comando getconf . No meu sistema:

$ getconf ARG_MAX
262144

Isso significa que a linha de comando completa (após todas as substituições de variáveis, etc.) ter sido processada, incluindo variáveis de ambiente e seus valores, não deve exceder 256 KiB para que o shell seja garantido para aceitar isso.

O POSIX garante que ARG_MAX seja pelo menos 4096.

Para uma discussão específica do Linux sobre ARG_MAX , consulte Resposta de Stéphane Chazelas a uma questão relacionada .

Para uma discussão aprofundada sobre esse problema, consulte o link (link externo).

Com grep -f patterns file , você pode ignorar o comprimento máximo da linha de comando, colocando os padrões para os quais gostaria de grep no arquivo patterns . O limite para o número de padrões será então a sua RAM disponível em vez de um limite imposto pelo sistema no comprimento da linha de comando.

    
por 13.04.2017 / 09:50

Tags