我需要从多个文件中删除两个文本 block 。这两个 block 是:
<sales_end_date>None</sales_end_date>
... some text
<unavailable_for_vod_date>None</unavailable_for_vod_date>
我该如何正确地做相当于:
find ./ -type f -name 'xml' -exec sed -i
'**remove <sales_end_date>None</sales_end_date>' {} \;
最佳答案
我认为您正在寻找:
find . -type f -name '*.xml' -exec sed -i \
-e '\@^<sales_end_date>None</sales_end_date>@d' \
-e '\@^<unavailable_for_vod_date>None</unavailable_for_vod_date>@d' {} \;
但我不会称其为正确执行。 sed 的 -i
选项可以说根本不适合使用,并且用 sed 解析 xml 理所当然地被认为是令人厌恶的。但是,这应该可以完成工作。
关于regex - 如何删除多个文件中的文本 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11962127/