【问题标题】:Write an IP with Netmask (sed) [duplicate]使用网络掩码(sed)写入 IP [重复]
【发布时间】:2016-12-07 17:58:00
【问题描述】:

我有问题。我想用sed将IP写入文件

newsource=1.2.3.4/24
sed -i 's/.*#source*/&\n'"$newsource"'/' file

$newsource 是一个 IP,它可以包含或不包含网络掩码 /24。现在sed 写入完整的IP 但不是/24。我该如何改变呢?

【问题讨论】:

    标签: bash shell sed


    【解决方案1】:

    这是因为您必须转义 /,或将 sed 分隔符更改为其他内容:

    转义:\/

    newsource=1.2.3.4\/24
    sed -i 's/.*#source*/&\n'"$newsource"'/' file
    

    sed分隔符更改为~

    newsource=1.2.3.4/24
    sed -i 's~.*#source*~&\n'"$newsource"'~' file
    

    分享和享受。

    【讨论】:

      【解决方案2】:

      试试:

      sed -i 's|.*#source*|&\n'"${newsource}"'|' file
      

      您可以使用 \ 来转义 /,但由于路径存储在变量中,因此使用不同的分隔符可能更容易。

      【讨论】:

        猜你喜欢
        • 2015-04-11
        • 1970-01-01
        • 2013-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-03
        • 2013-03-03
        相关资源
        最近更新 更多