![sed 替换以特定单词开头和结尾的行](https://linux22.com/image/1599457/sed%20%E6%9B%BF%E6%8D%A2%E4%BB%A5%E7%89%B9%E5%AE%9A%E5%8D%95%E8%AF%8D%E5%BC%80%E5%A4%B4%E5%92%8C%E7%BB%93%E5%B0%BE%E7%9A%84%E8%A1%8C.png)
我试图用“#SERVICE 1:64:0:0:0:0:0:0:0:0:0:0:”替换以“#SERVICE”开头并以“///”结尾的行。例如,这一行:“#SERVICE blablabla ///”我试过这个,但是没有用:
sed -i 's;#SERVICE*///;#SERVICE 1:64:0:0:0:0:0:0:0:0:;g'
答案1
您的正则表达式是错误的。E*
匹配零次或多次重复E
。要说E
后面跟着任何内容,您需要E.*
(其中.
是正则表达式元字符,它匹配除换行符之外的任何字符)。
这是一个非常常见的常见问题。例如,请参阅https://stackoverflow.com/questions/23702202/what-are-the-differences-between-glob-style-pattern-and-regular-expression以及更广泛地说Stack Overflowregex
标签信息页面。