我已经研究这个问题一段时间了,但似乎还是没弄明白。我想做的是将文件中的所有数字替换为单个 #。
听起来很简单,也应该如此,但我就是搞不懂。任何帮助我都会很感激。
我目前得到的(但没有起作用)是:
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'
将整个数字块替换为一 #
。