我已经通读了几十个sed问题,没有一个与我想做的事情有关。我正在使用sed c
命令来匹配文件中的多行,但我需要两个部分之间的内容。
a
begin
c
d
end
f
...
在这个例子中,我需要捕获两行c
和d
,并删除它们之间的新行,并在输出中使用它们,但是我没有尝试或找到任何东西允许我从match表达式中捕获。
使用一些包含\1
的伪代码作为捕获组输出:
cat file | sed -e '/begin/,/end/c\begin\n\1\nend'
这应该会产生
a
begin
c
d
end
f
...
我不知道sed是否适合这项工作,但它可能只是用例之外的一步。我愿意接受其他选择。
1条答案
按热度按时间wz3gfoph1#
一种办法是: