免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: letunix
打印 上一主题 下一主题

[文本处理] 如何通过 sed 来判断节点, 并删除节点根? [复制链接]

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
51 [报告]
发表于 2013-03-09 19:31 |只看该作者
回复 47# letunix


    那就表示没问题了~

论坛徽章:
0
52 [报告]
发表于 2013-03-09 19:39 |只看该作者
本帖最后由 letunix 于 2013-03-09 19:39 编辑

回复 48# yestreenstars


不能直接输出到原文件?我刚刚是在末尾加了一个 >newfile.plist输出.

    可以加一下我的 Q 么?

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
53 [报告]
发表于 2013-03-09 19:48 |只看该作者
回复 49# letunix
  1. sed -ri '/^\t{2}<dict>$/{:1;N;/<dict>$/{:2;N;/<\/dict>/!b2;b1};/<\/dict>$/!b1;/<string>SettingsNetworkController<\/string>/d}'
复制代码
有问题直接在论坛问好了,这里高手很多的~

论坛徽章:
0
54 [报告]
发表于 2013-03-09 19:52 |只看该作者
回复 50# yestreenstars


    我的问题有些低级, 属于 Unix 刚入门. 呵呵....

论坛徽章:
0
55 [报告]
发表于 2013-03-09 20:05 |只看该作者
本帖最后由 letunix 于 2013-03-09 20:06 编辑

回复 50# yestreenstars


其实还有个小问题, 这个应该会简单些...
我还是把原 xml 文件发给你, 你帮我看看....

也是 sed,
查找 <key>bluetooth</key>, 如果为真, 则删除
<key>bluetooth</key>
<true/>




xx.rar (1.28 KB, 下载次数: 4)

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
56 [报告]
发表于 2013-03-09 20:53 |只看该作者
回复 52# letunix


    等我吃完饭再帮你看,我现在是用手机上的~

论坛徽章:
0
57 [报告]
发表于 2013-03-09 21:05 |只看该作者
回复 54# yestreenstars


    耽误你吃饭了?现在才吃饭啊?
    实在是我对 sed 转义完全不懂. 只能来烦你了, Sorry!

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
58 [报告]
发表于 2013-03-09 21:15 |只看该作者
回复 52# letunix


    这个确实简单,你既然不懂sed,那你怎么会想到用sed解决?你还懂什么?
  1. sed '/<key>bluetooth<\/key>/{N;d}'
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
59 [报告]
发表于 2013-03-09 21:17 |只看该作者
回复 53# letunix


    什么意思?

论坛徽章:
0
60 [报告]
发表于 2013-03-09 21:23 |只看该作者
回复 57# yestreenstars


有得选择我更愿意选择自己拿手的办法, 麻烦别人总是不太好...
但那平台上只有这个可用了, 要不然又要增加七七八八的依赖包....
还是从基层开始, 解决不了在考虑其他方法...
就是太麻烦人了...呵呵..


我们前面说的方法是基于
                <dict>
                        <key>cell</key>
                        <string>xxx</string>
                        <dict>
                                <string>ringer-switch</string>
                        </dict>

                </dict>
这种情况, 如果前面的 xml 树都一样.
就是 dict 里面不包含第三个 dict, 呢?似乎运行无效...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP