Shell Sed 命令中:如何处理一段 XML 文件 200

file.xml: <dict> <key>Name</key> <string>eeee</string> </dict> <dict> <key>Name</key> <string>bbb</string> </dict> <dict> <key>Name</key> <string>ccc</string> </dict> <dict> <key>Name</key> <st... 展开
网上就找到这段, 但它不能判断 dict 中是否包含<string>bbb</string>. 如果包含在删除该节点(dict)

sed -i '/^<dict>/,/^<\/dict>$/d' /x.x
我有更好的答案

1条回答

这个要同时用到sed的模式空间(Pattern Space)和保留空间(Hold Space),如下即可:
sed -n ':a;/^<dict>/{h;:c;n;H;/^<\/dict>/ba;bc};g;/<string>bbb<\/string>/!p' file.xml

自己验证通过。
xiehuahere | 发布于2013-03-09
评论

为您推荐:

×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消