Заменить блок чисел в 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'

заменить весь блок цифр наодин #.

Связанный контент