![Заменить блок чисел в sed](https://rvso.com/image/1313371/%D0%97%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C%20%D0%B1%D0%BB%D0%BE%D0%BA%20%D1%87%D0%B8%D1%81%D0%B5%D0%BB%20%D0%B2%20sed.png)
Я уже некоторое время с этим возился и не могу понять. Я пытаюсь заменить все числа в файле одним #.
Звучит просто, и так и должно быть, но я не могу в это поверить. Любая помощь будет оценена по достоинству.
Вот что у меня получилось (но это не работает):
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'
заменить весь блок цифр наодин #
.