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이 됩니다.

관련 정보