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,而不是系統對命令列長度施加的限制。

相關內容