Быстрое решение без защиты от угловых случаев.
(Спасибо glenn jackman за sed
оптимизацию.)
sed -i "/^values = / s/$/, ${NEW_VALUE}/" test.txt
sed -i
-Внесите изменения в данный файл, не печатайте в stdout
.
/^values = /
-Когда sed
расположен на строке, которая начинается с values =
.
s/$/, ${NEW_VALUE}/
-Добавить , ${NEW_VALUE}
в конце строки.
test.txt
-Файл, над которым sed
будет выполнять действия.
sed -i "/^values = / s/ ${REMOVE_VALUE},\?//" test.txt
s/ ${REMOVE_VALUE},\?//
-Удалите первое вхождение ${REMOVE_VALUE}
вместе с необязательным последующим ,
.
,
сразу послеvalues =
,
. sed
разделитель для s
команды (, в моем примере это /
), команда не будет работать. Я понял. gzip
не был установлен, поэтому я установил его, и он работал
Не gzip
не удалось найти файл, а gzip
, который не был найден.