시작 및 끝 패턴(시작 및 끝 패턴 제외)에서 일련의 줄을 복사하여 동일한 파일의 세 번째 패턴에 붙여넣는 방법

시작 및 끝 패턴(시작 및 끝 패턴 제외)에서 일련의 줄을 복사하여 동일한 파일의 세 번째 패턴에 붙여넣는 방법

원본 파일

.
.
. 
startpattern
   text to copy 1
   test to copy 2
endpattern
.
.
.
thirdpattern

결과 파일

.
.
. 
startpattern
   text to copy 1
   test to copy 2
endpattern
.
.
.
thirdpattern
   text to copy 1
   test to copy 2
.
.
.

답변1

이는 스크립트 가능한 편집기에서는 매우 간단해 보입니다 ed. 핵심 명령은 다음과 같습니다.

/startpattern/+1, /endpattern/-1 t /thirdpattern/

명령줄을 사용하여 파일을 변경할 수 있습니다.

printf '%s\n' '/startpattern/+1, /endpattern/-1 t /thirdpattern/' w q | ed -s filename

... ed주 명령, write 명령, quit 명령 등 세 가지 명령을 입력 버퍼에 파이프합니다.

올바른 라인을 캡처할 수 있도록 각 패턴의 정규식을 강화해야 합니다. 처음 두 패턴의 +1 및 -1은 일치 항목을 앞뒤로 조정하여 해당 두 패턴이 있는 라인을 제외합니다.

관련 정보