Заменить блок чисел в sed

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

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

что у меня есть до сих пор (но не работает):

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

вывод, который я ожидаю:

fdsafdsa # dsafdas

но sed дает мне ту же строку, ничего не заменяя.

любой улики?

25
задан slhck
20.11.2022 6:15 Количество просмотров материала 3476
Распечатать страницу

1 ответ

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

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

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


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

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

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

7
отвечен slhck 2022-11-21 14:03

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх