Другой вариант - заменить sed
на ed
и хранить команды в файле. Например, если вы создадите ed_cmds
со следующим содержимым:
%s/BASE_64/<expanded variable>/g
w
q
вы можете запустить
< ed_cmds ed FILE_NAME
и он внесет нужные вам изменения, так что вместо установки $BASE_64
вы создадите командный файл ed.
Ed Explanation
%
означает применение команды к каждой строке файлаs/pat1/pat2/g
заменяет вхождения pat1
на pat2
, а g
в конце делает это для каждого совпадения в строке, а не только первоеw
записывать изменения на дискq
выходить (что все равно произойдет при получении EOF)Конечно, вы можете поместить свои команды sed
в файл и использовать -f
, но если вы делаете это и хотите изменить файл на месте, вы можете использовать ed
, а не создавать временный файл и перемещать его, как это делает sed -i
.