Я использую xmlstarlet в сценарии оболочки для анализа XML-файла без названия app.xml с помощью этой команды, просто чтобы получить содержимое, которое является строкой, и сохранить его в «my_var»:
my_var=`xmlstarlet sel -t -m "//root/services/service[position=$i]" -v description -n /home/wissem/Bureau/app.xml`
затем при попытке изменить другой XML-файл без названия strings.xml с выводом последней команды, используя эту командную строку:
find /root/AndroidStudioProjects/FacebookMenu/app/src/main/res/values/strings.xml -type f -exec perl -pi -w -e 's/name=\"text_'$i'\".*\<\/string\>/name=\"text_'$i'\"\>'$my_var'\<\/string\>/g' {} \;
я получаю следующую ошибку:
Substitution replacement not terminated at -e line 1.
я попытался понять проблему, по отдельности изменив строку, которую я анализирую, в свою переменную, я заметил, что проблема возникает, когда у меня есть «пробел» в строке!
чтобы объяснить больше :for this_is_my_string : это работает
для этого моя строка: я получаю сообщение об ошибке.