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

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

Qual é o intervalo máximo de caracteres do grep no bash? Quanto tempo uma string pode ter como entrada para pesquisa usando o comando grep?

Responder1

O comprimento máximo dos argumentos da exec()função (usados ​​pelo shell para iniciar um processo) é definido pelo valor de ARG_MAXno limits.hcabeçalho. Este valor também está disponível através do getconfcomando. 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. terem sido processadas),incluindo quaisquer variáveis ​​de ambiente e seus valores, não deve exceder 256 KiB para que o shell tenha garantia de aceitá-lo.

POSIX garante que ARG_MAXé pelo menos 4096.

Para uma discussão específica do Linux sobre ARG_MAX, consulteA resposta de Stéphane Chazelas a uma pergunta relacionada.

Para uma discussão aprofundada sobre este assunto, consultehttps://www.in-ulm.de/~mascheck/various/argmax/(link externo).


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

informação relacionada