우리 모두 알고 있듯이 이 작업은 를 통해 수행sed
할 수 있으며 , 라인을 처리하고 편집 명령으로 변환한 다음 에 전달할 수 있기 때문에 패턴(또는 라인 번호) 목록을 기반으로 변경해야 할 때 유용합니다. 때로는 목록이 매우 클 때도 있습니다. 그래서 제 질문은 다음과 같습니다.stdin
-f
sed
파일에서 사용할 수 있는 줄 수/편집 명령에 제한이 있나요?sed
스크립트2 ?
1: 하지만 모든 구현이 이를 지원하는 것은 아닙니다.
2: 어느 것스크립트-e script
all 과 옵션을 결합하여 -f script_file
얻습니다 .
답변1
GNU sed 4.2.2의 소스 코드를 간략히 살펴보면 수많은 malloc 호출과 내장된 크기 상수가 없음을 알 수 있습니다. 그래서,아니요, 제한은 없습니다 - RAM을 제외하고.
답변2
sed
OpenBSD 6.1: RAM이 한계입니다.
문제를 일으킬 수 있는 구체적인 사항은 다음과 같습니다.
int
태그가 너무 많습니다(제가 생각하는 순서대로).- 예약된 공간(크기)이 너무 많은 데이터로 채워졌습니다
size_t
. - 입력 줄이 너무 깁니다(입력 데이터 또는 스크립트가 처리되었지만 처리된 줄이
size_t
길이에 도달했습니다).
스크립트 sed
자체는 연결된 목록 구조로 컴파일됩니다.