sed 命令如何替换多行内容?

现在有个 setup.py 文件有包含以下一段内容:

# 其它代码 ...

speedups = Feature(
    'optional C speed-enhancement module',
    standard=True,
    ext_modules=[
        Extension('markupsafe._speedups', ['markupsafe/_speedups.c']),
    ],
)

# 其它代码 ...

如何用 sed 命令把这几行内容删掉或者注释掉?


OK,刚刚看了文档试了下,问题解决了,命令行如下:

cat setup.py | sed "/^speedups = Feature/,/^)$/s/.*//g"

先选定从 speedups = Feature 开始到右括号 ) 结束的范围内的文本行,然后都替换成空。

阅读 22.7k
2 个回答

简单的,也可以用 d 指令实现:

sed -i "/^speedups = Feature/,/^)$/d" setup.py

sed -i s/^/#/g setup.sh 添加注释

sed -i "/^speedups = Feature/,/^)$/d" setup.py 删除

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏