use*_*746 6 linux sed regular-expression
我想将 httpd 的默认侦听端口替换为 9090。我可以使用下面的方法编辑 httpd.conf 文件中的行
sed -i "/^Listen/c\Listen 9090" /etc/httpd/conf/httpd.conf
Run Code Online (Sandbox Code Playgroud)
但是线
Listen 80
Run Code Online (Sandbox Code Playgroud)
前面可能有空格。
如何忽略此空白以匹配此行?
只允许正则表达式也匹配空格。您可以使用字符组[ \t](匹配空格或制表符)或等效的 POSIX 括号表达式 [:blank:]。
因此,/^Listen/变成/^[[:blank:]]*Listen/。(请注意,括号表达式实际上是用双方括号对编写的。)
通过以下方式更改您的匹配模式,在 liste 之前不捕获空格:
/^\s*Listen/
Run Code Online (Sandbox Code Playgroud)
这将包括所有
Listen ..
Listen ...
Run Code Online (Sandbox Code Playgroud)
和别的。