我正在尝试用我的文本替换文件中连续的两行。例如:
测试文件.rb
class Test
def procedure
nil
end
end
我正在努力实现这一目标:
测试文件.rb
class Test
def procedure
nil
finish
finish
所以我需要替换最后两行,但这不起作用:
sed -i 's/^\s\send\nend/ finish\nfinish/' testfile.rb
我知道它失败了,因为替换是逐行进行的。但是我该怎么做呢?
最佳答案
sed '/end$/N;//s/end/finish/g' testfile.rb
结果
class Test
def procedure
nil
finish
finish
- 我们只想查看可能都包含
end
的一对行,所以 仅当第一行以end
结尾时才在第二行读取
- 将
end
替换为finish
关于regex - sed - 替换几个连续的匹配模式的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16123102/