如何使用sed在正则表达式中转义负号?
我需要从不需要的字符中释放字符串。在本例中,我想从b中筛选所有如何使用sed在正则表达式中转义负号?,sed,filter,expression,Sed,Filter,Expression,我需要从不需要的字符中释放字符串。在本例中,我想从b中筛选所有+和所有-,并将结果写入c。因此,如果b是+fdd-dfdf++,c应该是+-++ read b c=$(echo $b | sed 's/[^(\+|\-)]//g') 但当我运行脚本时,控制台会说: sed:-e表达式#1,字符15:无效范围结束 原因是正则表达式中的\-。我如何解决这个问题并说我想过滤所有的-?你在找这个吗 kent$ echo 'a + b + c - d - e'|sed 's/[^-+]//g' ++--
+
和所有-
,并将结果写入c。因此,如果b是+fdd-dfdf++
,c应该是+-++
read b
c=$(echo $b | sed 's/[^(\+|\-)]//g')
但当我运行脚本时,控制台会说:
sed:-e表达式#1,字符15:无效范围结束
原因是正则表达式中的
\-
。我如何解决这个问题并说我想过滤所有的-
?你在找这个吗
kent$ echo 'a + b + c - d - e'|sed 's/[^-+]//g'
++--
如果使用bash,可能是'sed's/[^-+]//g'