패턴이 처음 발생한 후 다른 파일에 파일 삽입

패턴이 처음 발생한 후 다른 파일에 파일 삽입

일치하는 PATTERN 다음에 file1의 내용을 file2에 삽입하고 싶습니다. 패턴이 처음 나타난 후에만 이 작업을 수행하고 싶습니다.

내 필요에 따라 다음 명령에 어떤 수정이 필요한지 알고 싶습니다.

sed -i "/PATTERN/r file1" file2

답변1

sed '/PATTERN/{
       r file1
       :a
       n
       ba
     }' file2

:a, n, ba는 PATTERN부터 끝까지 전체 파일 내용을 출력하는 루프일 뿐입니다. 이 6줄은 하나의 명령일 뿐이지만 을 구분하려면 줄바꿈이 필요하고 r다음 :sed 명령이 필요합니다 b.

추가 정보 info sed:

`n'
     If auto-print is not disabled, print the pattern space, then,
     regardless, replace the pattern space with the next line of input.
     If there is no more input then `sed' exits without processing any
     more commands.

`: LABEL'
     [No addresses allowed.]

     Specify the location of LABEL for branch commands.  In all other
     respects, a no-op.

`b LABEL'
     Unconditionally branch to LABEL.  The LABEL may be omitted, in
     which case the next cycle is started.

관련 정보