我在Ubuntu 12.04上运行此替换命令。
$ sed -e "s/([a-zA-Z0-9.-/\\ :]+)/\1/g"
但是,会引发以下错误。
sed:-e expression#1,char 27:无效范围结束
我记得同样的表达式适用于MacOSX 你能描述命令失败的原因吗?
答案 0 :(得分:11)
您可以通过两种方式解决它。其中一个是使用-r
开关来避免转义特殊字符并将范围中的-
移动到第一个或最后一个位置并避免其特殊含义,它将是:
sed -re "s/([a-zA-Z0-9./\\ :-]+)/\1/g"
否则您需要转义(
,)
和+
,例如:
sed -e "s/\([a-zA-Z0-9./\\ :-]\+\)/\1/g"