История изменений
Исправление Kroz, (текущая версия) :
Тогда уже так:
$ sed 's/subvol=[^\t, ]*/subvol='$VOLUME'/'
. - любой символ
* - колличество - любое, точнее 0 и больше.
Сочетание [^\t, ] говорит «не табуляция, не запятая, не пробел».
В итоге ищем то, что начинается с «subvol=» за которым следует любое количество любых символов кроме табуляций, запятых, пробелов.
То есть теперь все равно, в конце оно строки с параметрами или в середине.
Там другая проблема - в переменной присутствует символ слэша и sed от этого впадает в ступор.
Экранировать его:
VOLUME="xxx\/yyy"
Вот за что я не люблю баш - так за то, что регулярно приходится дёргать эту наркоманскую отрыжку (sed)
bash, как раз позволяет от него в некоторых случаях уходить: http://www.opennet.ru/docs/RUS/bash_scripting_guide/x4171.html , ближе к концу.
И вопрос не в sed, а в регулярных выражениях. Пока не освоишь, и правда наркоманским кажется, а когда освоишь, получается благодать. Рекомендую для начала: http://ru.wikipedia.org/wiki/Регулярные_выражения .
Исходная версия Kroz, :
Тогда уже так:
$ sed 's/subvol=[^\t, ]*/subvol='$VOLUME'/'
. - любой символ * - колличество - любое, точнее 0 и больше. Сочетание [^\t, ] говорит «не табуляция, не запятая, не пробел». То есть ищем то, что начинается с «subvol=» за которым следует любое количество любых символов кроме табуляций, запятых, пробелов.
То есть теперь все равно, в конце оно строки с параметрами или в середине.
Там другая проблема - в переменной присутствует символ слэша и sed от этого впадает в ступор.
Экранировать его:
VOLUME="xxx\/yyy"
Вот за что я не люблю баш - так за то, что регулярно приходится дёргать эту наркоманскую отрыжку (sed)
bash, как раз позволяет от него в некоторых случаях уходить: http://www.opennet.ru/docs/RUS/bash_scripting_guide/x4171.html , ближе к концу.
И вопрос не в sed, а в регулярных выражениях. Пока не освоишь, и правда наркоманским кажется, а когда освоишь, получается благодать. Рекомендую для начала: http://ru.wikipedia.org/wiki/Регулярные_выражения .