bash 中 grep 的最大字符范围是多少?

bash 中 grep 的最大字符范围是多少?

bash 中 grep 的最大字符范围是多少?使用 grep 命令搜索的字符串可以有多长?

答案1

函数参数的最大长度exec()(由 shell 用于启动进程)由标头ARG_MAX中的值定义limits.h。该值也可以通过getconf命令获得。在我的系统上:

$ getconf ARG_MAX
262144

这意味着完整的命令行(在处理完所有变量替换等之后),包括任何环境变量及其值,不得超过 256 KiB,以保证 shell 接受它。

POSIX 保证ARG_MAX至少为 4096。

有关 Linux 特定的讨论ARG_MAX,请参阅Stéphane Chazelas 对相关问题的回答

有关此问题的深入讨论,请参阅https://www.in-ulm.de/~mascheck/various/argmax/(外部链接)。


grep -f patterns file可以通过将您想要的模式放入grep文件中来绕过命令行的最大长度patterns。模式数量的限制将是您的可用 RAM,而不是系统对命令行长度施加的限制。

相关内容