web-dev-qa-db-ja.com

sedの数字のブロックを置き換えます

私はしばらくこれをいじっていて、それを理解できないようです。私がやろうとしているのは、ファイル内のすべての番号を1つの#に置き換えることです。

簡単そうに聞こえますが、そうあるべきですが、頭を悩ませることはできません。どんな助けでもいただければ幸いです。

私がこれまでに持っているもの(しかし機能しません)は次のとおりです:

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

私が期待する出力は次のとおりです。

fdsafdsa # dsafdas

しかし、sedは何も置き換えられていない同じ文字列を私に与えます。

手がかりはありますか?

7
acidtv

+は必要ありません。以下を使用してください。

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

[0-9]はすでにすべての数字に一致し、すべての数字を#に置き換えます。


+は拡張構文であるため、次のこともできます。

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

数字のブロック全体をone#に置き換えます。

10
slhck