4

Я возился с этим некоторое время и не могу понять это. То, что я пытаюсь сделать, это заменить все числа в файле с одним #.

Звучит просто, и так и должно быть, но я не могу разобраться с этим. Любая помощь будет оценена.

То, что я до сих пор (но не работает) это:

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

Результат, который я ожидаю:

fdsafdsa # dsafdas

Но sed дает мне ту же строку без замены.

Есть какие-нибудь подсказки?

1 ответ1

7

Вам не нужно + . Просто используйте следующее:

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

[0-9] будет соответствовать всем цифрам и заменяет каждую на # .


Поскольку + это расширенный синтаксис, вы также можете сделать:

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .