一个sed的写法疑问

一个这样的写法,

sed -i '/httpd-default.conf/s/^/#/' /usr/local/apache/conf/httpd.conf

请问这是什么写法,具体是什么作用。

阅读 2.7k
3 个回答
  1. 具体的操作是:
    a) 在文件中查找“httpd-default.conf”这个正则表达式

    /httpd-default.conf

    b) 查找“行首位置”并替换为“#”

    s/^/#/

    但是“行首位置”的长度为零,并不对应实际字符,故操作的实际效果是在行首插入了“#”

  2. sed的参数-i--in-place,效果是将sed操作的结果写回同一个文件。

综上所述,操作的效果是:在/usr/local/apache/conf/httpd.conf中,注释掉所有含有“httpd-default.conf”的行。

把/usr/local/apache/conf/httpd.conf文件中包含httpd-default.conf开头的行行首添加'#'号

/s/^/#/ 部分用正则表达式来替换字符串

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