Regex sed命令上未终止的地址正则表达式

Regex sed命令上未终止的地址正则表达式,regex,bash,shell,sed,Regex,Bash,Shell,Sed,我试图在文件中写入一个XML标记。我希望它在另一个标签之上 Script.sh sudo chmod 777 attribute-filter.xml configure_attribute_filter_tag1='<afp:AttributeFilterPolicy id="uid">' configure_attribute_filter_tag12='</afp:AttributeFilterPolicy>' configure_attribute_fil

我试图在文件中写入一个XML标记。我希望它在另一个标签之上

Script.sh

sudo chmod 777 attribute-filter.xml
 configure_attribute_filter_tag1='<afp:AttributeFilterPolicy id="uid">'
 configure_attribute_filter_tag12='</afp:AttributeFilterPolicy>'
  configure_attribute_filter_var='<afp:AttributeFilterPolicy id="releaseTransientIdToAnyone">'
      sed -i '/'$configure_attribute_filter_var'/i \'"$configure_attribute_filter_tag1"'' attribute-filter.xml
     sed -i '/'$configure_attribute_filter_var'/i \'"$configure_attribute_filter_tag12"'' attribute-filter.xml
sed: -e expression #1, char 27: unterminated address regex
sed: -e expression #1, char 27: unterminated address regex

有人能帮我找出问题吗?

从sed通话中删除单引号:

sed -i "/$configure_attribute_filter_var/i $configure_attribute_filter_tag1" attribute-filter.xml
您的预期结果包括
afp:AttributeFilterPolicyGroup
元素,该元素在
attribute_filter.xml
中不存在,我认为您指定实际文件包含该元素


重新考虑您是否真的希望使用面向行的工具(如sed)来转换序列化树结构。

我敢肯定您在sed语句中弄乱了。
sed: -e expression #1, char 27: unterminated address regex
sed: -e expression #1, char 27: unterminated address regex
sed -i "/$configure_attribute_filter_var/i $configure_attribute_filter_tag1" attribute-filter.xml