sed regex全局查找和删除字符串

dom*_*771 1 regex sed

我有以下(工作)正则表达式:

UNUSED([^,}]+)\}|,\s?UNUSED([^{]+)|UNUSED([^{]+),\s?|UNUSED([^{]+)
Run Code Online (Sandbox Code Playgroud)

我运行命令

sed 's/UNUSED([^,}]+)\}|,\s?UNUSED([^{]+)|UNUSED([^{]+),\s?|UNUSED([^{]+)//g' < index.css > newfile
Run Code Online (Sandbox Code Playgroud)

但是newfile仍然具有应该删除的所有模式.我做错了什么?

index.css包含 正则表达式:

http://regexr.com/3agmm

hek*_*mgl 5

您正在使用扩展的POSIX正则表达式.您需要传递-r给sed告诉它使用扩展的POSIX正则表达式.

另请注意,您正在使用的捕获组可以省略:

s/UNUSED[^,}]+}|,\s?UNUSED[^{]+|UNUSED[^{]+,\s?|UNUSED[^{]+//g
Run Code Online (Sandbox Code Playgroud)

当然你也可以使用基本的POSIX正则表达式,然后没有-n选项:

s/UNUSED[^,}]\+}\|,\s?UNUSED[^{]\+\|UNUSED[^{]\+,\s?\|UNUSED[^{]\+//g
Run Code Online (Sandbox Code Playgroud)