SED 스크립트의 최대 행/편집 명령 수는 무엇입니까?

SED 스크립트의 최대 행/편집 명령 수는 무엇입니까?

우리 모두 알고 있듯이 이 작업은 를 통해 수행sed 할 수 있으며 , 라인을 처리하고 편집 명령으로 변환한 다음 에 전달할 수 있기 때문에 패턴(또는 라인 번호) 목록을 기반으로 변경해야 할 때 유용합니다. 때로는 목록이 매우 클 때도 있습니다. 그래서 제 질문은 다음과 같습니다.stdin-f
sed

파일에서 사용할 수 있는 줄 수/편집 명령에 제한이 있나요?sed 스크립트2 ?


1: 하지만 모든 구현이 이를 지원하는 것은 아닙니다.
2: 어느 것스크립트-e scriptall 과 옵션을 결합하여 -f script_file얻습니다 .

답변1

GNU sed 4.2.2의 소스 코드를 간략히 살펴보면 수많은 malloc 호출과 내장된 크기 상수가 없음을 알 수 있습니다. 그래서,아니요, 제한은 없습니다 - RAM을 제외하고.

답변2

sedOpenBSD 6.1: RAM이 한계입니다.

문제를 일으킬 수 있는 구체적인 사항은 다음과 같습니다.

  1. int태그가 너무 많습니다(제가 생각하는 순서대로).
  2. 예약된 공간(크기)이 너무 많은 데이터로 채워졌습니다 size_t.
  3. 입력 줄이 너무 깁니다(입력 데이터 또는 스크립트가 처리되었지만 처리된 줄이 size_t길이에 도달했습니다).

스크립트 sed자체는 연결된 목록 구조로 컴파일됩니다.

관련 정보