При условии, что Linux Gnu sed, 1 решение будет
Правки сбежал '.' chars, т.е. s/example\.java.../
за правильный комментарий от Кент
replaceString=desiredsetting
sed -i "s/\(example\.java\.property=\).*\$/\1${replaceString}/" java.properties
Если вы используете BSD sed
на Mac, например, вам нужно будет указать аргумент для -i
, чтобы указать имя файла резервной копии. К счастью, вы можете использовать
sed -i '' ""s/\(example\.java\.property=\).*\$/\1${replaceString}/" java.properties
в качестве аргумента и избегайте необходимости управлять файлами .bak
в вашем рабочем процессе. (BSD sed
информация добавлена 2018-08-10)
Если ваш sed не соблюдает -i
, тогда вам нужно управлять файлами tmp, т.е.
sed "s/\(example\.java\.property=\).*\$/\1${replaceString}/" java.properties > myTmp
/bin/mv -f myTmp java.properties
Надеюсь, это поможет.