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>
반드시 그럴 필요는 없습니다.
답변1
우리는 섹션의 속성을 활용하겠습니다 CDATA
.할 수 없다]]>
다음의 하위 문자열을 포함합니다:
perl -0777 -pe '
s{
<content:encoded>
<!\[CDATA\[.*?]]> \K
</wp:meta_value>
}[</content:encoded>]xgs;
' your_file.input