$ echo "Anirudh Tomer" | sed 's/ +/ /g' Anirudh Tomer
Я ожидал, что это уберет эти 3 пробела между Анирудом и Томером и даст мне результат как "Anirudh Tomer"
"Anirudh Tomer"
Я новичок.Заранее спасибо за помощь.
Вам необходимо включить расширенную поддержку регулярного выражения sed с флагом -r.
-r
echo "Anirudh Tomer" | sed -r 's/ +/ /g'
В расширенных регулярных выражениях метасимволы ?, + и | нельзя экранировать (см. Википедия ).Метасимвол * работает, потому что он относится к основным регулярным выражениям .
?
+
|
*
Подобно регулярному выражению VIM, вам нужно выйти из квантификатора + с обратной косой чертой:
sed 's/ \+/ /g'
echo "Anirudh Tomer" | tr -s ' '