Text-Processing
匹配開始標籤+XML中的任何內容後搜尋並替換結束標籤
我正在嘗試在 WordPress 導出 XML 文件中找到搜尋和替換的解決方案,該文件將:
- 查找字元串
<content:encoded><![CDATA[HERE GOES ANY POSSIBLE POSTS TEXT including HTML tags]]></wp:meta_value>
- 將結束標籤替換
</wp:meta_value>
為</content:encoded>
問題是 XML 文件有很多其他的結束
</wp:meta_value>
標記 - 不僅用於開始<content:encoded>
。我搜尋的任何 sed 解決方案都沒有幫助。是否可以使用任何 bash 命令?
PS:我的目標是將自定義欄位轉換為預設的 WP 內容標籤。我需要更改的原始程式碼如下:
<wp:postmeta> <wp:meta_key><![CDATA[page_content_0_text]]></wp:meta_key> <wp:meta_value><![CDATA[POST CONTENT GOES HERE]]></wp:meta_value> </wp:postmeta>
我需要:
<content:encoded><![CDATA[POST CONTENT GOES HERE]]></content:encoded>
<content:encoded>
對於 XML 中的每個文章都是唯一的,<wp:postmeta>
但不是。
我們將利用
CDATA
節的屬性,即它不能在其中包含子字元串]]>
:perl -0777 -pe ' s{ <content:encoded> <!\[CDATA\[.*?]]> \K </wp:meta_value> }[</content:encoded>]xgs; ' your_file.input