替换 sed 中的数字块

替换 sed 中的数字块

我已经研究这个问题一段时间了,但似乎还是没弄明白。我想做的是将文件中的所有数字替换为单个 #。

听起来很简单,也应该如此,但我就是搞不懂。任何帮助我都会很感激。

我目前得到的(但没有起作用)是:

echo "fdsafdsa 32432 dsafdas" | sed 's/[0-9]+/#/g'

我期望的输出是:

fdsafdsa # dsafdas

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

有什么线索吗?

答案1

你不需要+。只需使用以下命令:

echo "fdsafdsa 32432 dsafdas" | sed 's/[0-9]/#/g'

[0-9]将匹配所有数字,并用 替换每一个数字#


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

echo "fdsafdsa 32432 dsafdas" | sed -E 's/[0-9]+/#/g'

将整个数字块替换为 #

相关内容