sed - 在 confluence 中替换 jira 宏 space
sed - replace jira macro in confluence space
我认为我已经非常接近我的解决方案了,但我看不出这个表达式有什么问题。我在编辑器中检查了这个表达式,效果很好。但同样适用于 sed,因此我可以使用 shell 脚本 运行 它。
我做了什么。
我导出了一个 Confluence Space 并想导入到另一个 Confluence。这个 confluence 不知道 JIRA Server 作为一个 Application Link 并且它不会得到。
所以这就是我想用 link 替换宏的原因。
<ac:structured-macro ac:name="jira"><ac:parameter ac:name="columns">key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution</ac:parameter><ac:parameter ac:name="server">JIRA</ac:parameter><ac:parameter ac:name="serverId">797a864e-7adf-3e88-ae1f-f35e5aade3f4</ac:parameter><ac:parameter ac:name="key">IT-1234</ac:parameter></ac:structured-macro>
我尝试了以下方法来替换宏。但还没有奏效。谁能帮我解释一下这个表达式,并解释一下我做错了什么?
sed -i -E 's/<ac:structured-macro ac:name="jira">.*?((?:IT|BI)-[0-9]+).*?<\/ac:structured-macro>/http:\/\/www.myconfluence.com\/browse\//gI' "confluence-space/entities.xml"
我得到的结果是:
sed:-e 表达式 #1,字符 130:前面的正则表达式无效。
提前致谢。
你不能在 sed 中使用 (?:x)
(非捕获组)语法。
(?
将搜索零次或一次出现的……什么都没有,因为 (
不被解释为乱码字符,而是作为开始捕获组。
试试这个:
sed -i -E 's/<ac:structured-macro ac:name="jira">.*?((IT|BI)-[0-9]*).*<\/ac:structured-macro>/http:\/\/www.myconfluence.com\/browse\//g' file
我认为我已经非常接近我的解决方案了,但我看不出这个表达式有什么问题。我在编辑器中检查了这个表达式,效果很好。但同样适用于 sed,因此我可以使用 shell 脚本 运行 它。
我做了什么。 我导出了一个 Confluence Space 并想导入到另一个 Confluence。这个 confluence 不知道 JIRA Server 作为一个 Application Link 并且它不会得到。
所以这就是我想用 link 替换宏的原因。
<ac:structured-macro ac:name="jira"><ac:parameter ac:name="columns">key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution</ac:parameter><ac:parameter ac:name="server">JIRA</ac:parameter><ac:parameter ac:name="serverId">797a864e-7adf-3e88-ae1f-f35e5aade3f4</ac:parameter><ac:parameter ac:name="key">IT-1234</ac:parameter></ac:structured-macro>
我尝试了以下方法来替换宏。但还没有奏效。谁能帮我解释一下这个表达式,并解释一下我做错了什么?
sed -i -E 's/<ac:structured-macro ac:name="jira">.*?((?:IT|BI)-[0-9]+).*?<\/ac:structured-macro>/http:\/\/www.myconfluence.com\/browse\//gI' "confluence-space/entities.xml"
我得到的结果是: sed:-e 表达式 #1,字符 130:前面的正则表达式无效。
提前致谢。
你不能在 sed 中使用 (?:x)
(非捕获组)语法。
(?
将搜索零次或一次出现的……什么都没有,因为 (
不被解释为乱码字符,而是作为开始捕获组。
试试这个:
sed -i -E 's/<ac:structured-macro ac:name="jira">.*?((IT|BI)-[0-9]*).*<\/ac:structured-macro>/http:\/\/www.myconfluence.com\/browse\//g' file