
Я уже некоторое время с этим возился и не могу понять. Я пытаюсь заменить все числа в файле одним #.
Звучит просто, и так и должно быть, но я не могу в это поверить. Любая помощь будет оценена по достоинству.
Вот что у меня получилось (но это не работает):
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'
заменить весь блок цифр наодин #
.