일치하는 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.