sed で数字のブロックを置き換える

sed で数字のブロックを置き換える

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

簡単そうに聞こえますし、そうであるべきなのですが、私には理解できません。どなたか助けていただければ幸いです。

これまでのところ私が得たもの(ただし動作​​しません)は次のとおりです。

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'

数字のブロック全体を1つ #

関連情報