我试图在sed中使用正则表达式\d
,但它不起作用:
sed -re 's/\d+//g'
但这是有效的:
sed -re 's/[0-9]+//g'
\d
不是一个正则表达式宏,而是一个开关。如果您想使用一些预定义的“常量”而不是 [0-9]
表达式,只需尝试运行此代码:
s/[[:digit:]]+//g
\w
有效呢? - user2036880\d
在sed中有不同的含义。 - Ivaylo Strandjev在 sed 中没有这样的特殊字符组。你需要使用 [0-9]
。
在 GNU sed 中,\d
表示一个介于 0-255 范围内的一至三位数的十进制字符代码。正如此评论所指出的那样。
最好使用在sed中添加-E的扩展模式。
在基本的RegExp中,\d和其他一些字符无法被检测到
-E 将正则表达式解释为扩展(现代)正则表达式,而不是基本正则表达式(BRE)。 re_format(7)手册完全描述了这两种格式。
\d
。 - Daniel Kaplan
perl -pe 's/\d+//g'
,或者说这是我需要使用的形式来打印一个文件(所以在这种形式下使用:perl -pe 's/\d+//g' example.txt > example2.txt
),你是在建议不同的用法吗? - Mike H-R\d
在sed中不表示数字。所引用的重复问题是关于“如何使用sed从字符串中提取文本”的。 - Robin A. Meade