Как заменить только последнее вхождение "-" в строке пробелом sed
?
Например:
echo $MASTER_DISK_RELEASE
swp-RedHat-Linux-OS-5.5.0.0-03
но я хочу получить следующий вывод (заменив последний дефис [«-«] пробелом)
swp-RedHat-Linux-OS-5.5.0.0 03
text-processing
sed
maihabunash
источник
источник
sed
не поддерживают сопоставление с образцом. В этом случае вам понадобится что-то еще, будь тоperl -pne 's/(.*)-/$1 /'
решение для расширения параметров @ Thor или что-то еще.sed -r
.sed -r 's/(.*)-(.*)-/\1 \2 /')
.Вы также можете справиться с этим с помощью расширения параметров bash :
Выход:
источник
Нечто подобное сработало для меня, хотя я уверен, что есть лучшие способы
источник
bash
расширения параметров, которая хорошо работает, если OP также используетbash
. Будет достигнут тонкий баланс между удобочитаемостью (вплоть до очень многословного) и использованием правильных инструментов, но чаще всего преобладают правильные инструменты.