我试图在 sed 中使用正则表达式中的 \d,但它不起作用:
\d
sed -re 's/\d+//g'
但这种做法奏效了:
sed -re 's/[0-9]+//g'
Sed 中没有这样的特殊字符组。您必须使用 [0-9]。
[0-9]
在 GNU sed 中,\d在0-255范围内引入了一到三位数的十进制字符代码。 如 在这个评论中所示。
\d是一个开关,不是正则表达式宏。如果您想使用一些预定义的“常量”而不是 [0-9]表达式,只需尝试运行以下代码:
s/[[:digit:]]+//g
最好通过添加 -E在 sed 中使用 Extended 模式。 在基本的 RegExp 中,d 和其他一些不会被检测到 - E 将正则表达式解释为扩展(现代)正则表达式,而不是基本正则表达式(BRE)。Re _ format (7)手册页完全描述了这两种格式。
-E
- E 将正则表达式解释为扩展(现代)正则表达式,而不是基本正则表达式(BRE)。Re _ format (7)手册页完全描述了这两种格式。