用空格替换Unix中的/ ** /

时间:2013-06-21 22:00:59

标签: regex unix replace sed awk

我想在文件夹中的所有文件中替换/**/。我试过了:

perl -pi -w -e 's/\/**\///g;' *.java

但收到错误:Nested quantifiers in regex; marked by <-- HERE in m//** <-- HERE // at -e line 1.

同样的事情:

sed 's/\/**\///g;' 

我基本上需要用空格替换/**/

2 个答案:

答案 0 :(得分:9)

你也需要逃避星号。为了保持可读性,您可能还想使用其他分隔符:

sed "s#/\*\*/##g"

答案 1 :(得分:1)

您可以在*中指定[]

perl -pi -w -e 's#/[*]{2}/# #g;' *.java

或者,您可以使用quotemeta运算符:

perl -pi -w -e 's#\Q/**/\Q# #g;' *.java

,它会转义与/[A-Za-z_0-9]/不匹配的所有ASCII字符。