我正在尝试\d
在 sed 中使用正则表达式,但它不起作用:
sed -re 's/\d+//g'
但这是有效的:
sed -re 's/[0-9]+//g'
\d
是一个开关而不是正则表达式宏。如果您想使用一些预定义的“常量”而不是[0-9]
表达式,请尝试运行以下代码:
s/[[:digit:]]+//g
sed 中没有这样的特殊字符组。您将不得不使用[0-9]
.
在 GNU sed 中,\d
引入了 0-255 范围内的一到三位数字的十进制字符代码。如本评论所示。
您最好在 sed 中通过添加来使用扩展模式-E
。在基本的 RegExp 中,\d 和其他一些不会被检测到
-E Interpret regular expressions as extended (modern) regular expressions rather than basic regular expressions (BRE's). The re_format(7) manual page fully describes both formats.