一致するPATTERNの後にfile1の内容をfile2に挿入したいと思います。 PATTERNが最初に出現した後でのみ実行したい。
自分のニーズに合わせて、次のコマンドに加える必要のある変更を知りたいのですが。
sed -i "/PATTERN/r file1" file2
承認された回答:
sed '/PATTERN/{
r file1
:a
n
ba
}' file2
:a
、 n
、 ba
PATTERNの後、最後までファイルの内容全体を印刷するサイクルです。これらの6行は1つのコマンドにすぎないことに注意してください。ただし、 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.