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이며 명령줄 길이에 대한 시스템 제한이 아닙니다.

관련 정보