首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  正则表达式

[RegEx]如何根据中间内容查找两端的字符串

  •  
  •   Tumblr · 2018-09-18 01:00:21 +08:00 · 1131 次点击
    这是一个创建于 443 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有如下字符串(文件是 xml 格式,在 CentOS7.5 的 OS 上):

    <node>
      <sub-node1>
      <!--  <some-string1 /> -->
      </sub-node1>
      <sub-node2>
        <!--
        <some-string2 />
        -->
      </sub-node2>
      <sub-node3>
        <!--
        <some-string3>
        -->
      </sub-node3>
      <sub-node4>
        <!-- <some-string3> -->
      </sub-node4>
    </node>
    

    我想把 <some-string3> 的注释去掉,可不可以用 sed -i 's/some-regex/some-string/g' 来实现?如果可以,怎么写呢?

    补充一下

    1. 条件字符串的注释可能是换行的,也可能在同一行;
    2. 这类文件非常多,并且操作是例行性的,写成脚本感觉比较方便一些;
    3. 如果可以,打算优先考虑 shell 脚本;
        1
    whileFalse   2018-09-18 09:30:42 +08:00
    没明白,有两个 something3 ?
        2
    Tumblr   2018-09-18 09:40:41 +08:00
    @whileFalse #1 是的,只删除 <some-string3>前后的注释,但是之前的配置文件里,注释和内容在同一行或不同行的都有(如主题中的子节点 3、子节点 4 )。
    其实不止有两个 <some-string3>,但只有这两种情况。
        3
    yangg   2018-09-18 09:52:35 +08:00
    用操作 xml 的库
        4
    Tumblr   2018-09-18 09:58:03 +08:00
    @yangg #3 您是说用 Python 么?如果用非 Shell 的脚本,选择倒是多一些,不过目前打算先尝试一下用 Shell 脚本直接操作。
    如果您是说 Shell 中的 xml lib,恕我愚钝,这块儿我并不太熟悉,可否指教?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1848 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 16:19 · PVG 00:19 · LAX 08:19 · JFK 11:19
    ♥ Do have faith in what you're doing.