我想在匹配的 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.