Я хотел бы добавить указанную строку в файл, в то время как это может показаться легкой задачей - и, безусловно, я изо всех сил стараюсь сделать это. Вот мой сценарий:Как добавить строку в текст с помощью sed или awk
TOMCAT_HOME=/home/osiris/Documents/work/sbr-brms/tomcat-script/apache-tomcat-8.0.22
BUSINESS_CENTRAL_USERS="<role rolename=\"admin\"/>
<role rolename=\"analyst\"/>
<user username=\"bpmAdmin\" password=\"password1!\" roles=\"admin,analyst\"/>"
#sed 's,<\/tomcat-users>, $BUSINESS_CENTRAL_USERS <\/tomcat-users>,' $TOMCAT_HOME/conf/tomcat-users.xml
#sed "s,<\/tomcat-users>, $BUSINESS_CENTRAL_USERS <\/tomcat-users>," $TOMCAT_HOME/conf/tomcat-users.xml
# awk -v r=$BUSINESS_CENTRAL_USERS '{ /<\/tomcat-users>/{print r}1}' $TOMCAT_HOME/conf/tomcat-users.x
Первая СЕПГ команда не получает переменный Баш решена, так что только печатает $ BUSINESS_CENTRAL_USERS
Второй СЕПГ команда заканчивается: СЭД: -e выражение # 1, char 45: команда unterminated `s
Третья команда awk заканчивается на: awk: cmd. line: 1: rolename = "admin" /> awk: cmd. line: 1:^Синтаксическая ошибка
Я считаю, что это имеет какое-то отношение к тому факту, что строка, которую я хочу записать в файл, включает в себя «и. Я не знаю, как избежать ее должным образом. .
любые советы приветствуются
Это оригинальный вход http://pastebin.com/ZbTWmn7m Это должно быть ожидаемый выход http://pastebin.com/Gxtptuq3
Что такое вход и ожидаемый выход? –
Это входной файл http://pastebin.com/ZbTWmn7m, и это должен быть ожидаемый вывод http://pastebin.com/Gxtptuq3 –
Чтобы быть совершенно ясным, мне все равно, выполняется ли это sed/awk или любой другой стандартной утилиты linux, просто подумал, что эти два могут быть наиболее подходящими кандидатами для такой простой задачи. –