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