我已经在Regexr.com中测试了此特定的正则条件:
/(*)*((s)?(w)*)/g
匹配以下内容:
* Global Links contained...etc
* Change User, contact list...etc
(... on的所有内容只是句子中的额外单词,而不是字面的……等)
我试图在sed命令中使用此正则命令作为bash脚本的一部分:
sed "/(*)*((s)?(w)*)/d" test.txt > stripped.txt
,但这两条线仍然保持在剥离中。我在正则或文件中没有考虑什么?在这两行是块注释(/**)的开始之前,块注释结束在它们之后(*/),这两者都在新行上。我是否错过了新线条晦涩难懂的东西,还是sed命令/正则是错误的?
您默认情况下,您没有考虑到SED使用的Regex的方言。那不是有效的BRE(基本正则表达式)。
您需要告诉SED使用ERE(扩展正则表达式)。
对于-r
标志的GNU SED,对于-E
标志的BSD SED(尽管-r
通常可作为Compat Flag使用)。
sed -r "/(*)*((s)?(w)*)/d" test.txt > stripped.txt