替换 sed 中的一组数字

aci*_*dtv 7 linux regex sed find-and-replace

我已经摆弄了一段时间了,似乎无法弄清楚。我想要做的是用单个 # 替换文件中的所有数字。

听起来很简单,它应该是,但我无法理解它。任何帮助,将不胜感激。

我到目前为止(但不起作用)是:

echo "fdsafdsa 32432 dsafdas" | sed 's/[0-9]+/#/g'
Run Code Online (Sandbox Code Playgroud)

我期望的输出是:

fdsafdsa # dsafdas
Run Code Online (Sandbox Code Playgroud)

但是 sed 给了我相同的字符串,没有任何替换。

有什么线索吗?

slh*_*hck 10

你不需要+. 只需使用以下内容:

echo "fdsafdsa 32432 dsafdas" | sed 's/[0-9]/#/g'
Run Code Online (Sandbox Code Playgroud)

[0-9]将已经匹配所有数字,并用#.


由于+是扩展语法,您还可以执行以下操作:

echo "fdsafdsa 32432 dsafdas" | sed -E 's/[0-9]+/#/g'
Run Code Online (Sandbox Code Playgroud)

与替换数字的整个块一个 #