我正在尝试取消注释(nginx config)文件中第4行的注释。使用sed
。我首先尝试了grep,而regexp似乎是正确的:
$ grep ^#.*bny /etc/nginx/sites-enabled/default
# location /bny {
但是,当我尝试使用sed#
在行的开头删除时,它会失败:
$ sudo sed -i '/^#.*bny/,+3 s/^#+//' /etc/nginx/sites-enabled/default
$ grep ^#.*bny /etc/nginx/sites-enabled/default
# location /bny {
我认为我使用相同的策略对sed的部分进行注释,并且效果很好:
sudo sed -i '/bny/,+3 s/^/#/' /etc/nginx/sites-enabled/default
即使是重复评论也没问题。取消评论后,我在做什么错?
+
是基本正则表达式(BRE)语法中的文字,因此您的替换模式无法匹配。
您可以使用s/^##*//
,s/^#\{1,\}//
或(在GNU sed中)s/^#\+//
,或使用-E
或-r
命令行选项切换到扩展的正则表达式(ERE)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句