bashのgrepの最大文字範囲は何ですか?

bashのgrepの最大文字範囲は何ですか?

bash에서 grep의 최대 문자 범위는 얼마입니까? grep 명령을 사용하여 검색할 수 있는 문자열은 얼마나 됩니까?

答え1

関数引数(プロセスを開始するためにシェルによって使用される)の最大長は、exec()ヘッダーARG_MAXの値として定義されますlimits.h。この値はgetconfコマンドを介しても取得できます。私のシステムでは:

$ getconf ARG_MAX
262144

これは、コマンドライン全体(すべての変数置換などが処理された後)を意味します。環境変数とその値を含みます。、シェルにこれを許可するには、256KiBを超えてはいけません。

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であり、コマンドライン長のシステム制限ではありません。

関連情報