Извлечение битов и кусочков с помощью sed
немного грязно (как говорит Джим Льюис, используйте basename
и dirname
, если можете), но, по крайней мере, вам не нужно множество обратных слешей, если вы идут по маршруту sed
, поскольку вы можете использовать тот факт, что символ-разделитель можно выбрать (мне нравится использовать !
, когда /
слишком неудобно, но произвольно):
$ echo 'param="/var/tmp/test"' | sed ' s!/[^/"]*"!/new_test"! '
param="/var/tmp/new_test"
Мы также можем извлечь только часть, которая была заменена, хотя это проще с двумя заменами в управляющем скрипте sed
:
$ echo 'param="/var/tmp/test"' | sed ' s!.*/!! ; s/"$// '
test