【发布时间】:2018-11-02 00:04:56
【问题描述】:
这些是我的文件 /etc/sysconfig/network-scripts/route-eth0 的内容:
192.168.1.12/32 via 172.16.1.60
192.168.1.0/24 via 172.16.60.1
我正在使用以下 sed 命令删除一行:
sed -i '#192.168.1.0/24 via 172.16.60.1#d' /etc/sysconfig/network-scripts/route-eth0
但是匹配的行(在我们的例子中是第 2 行)没有被删除。有什么见解吗?
注意:我在 sed 命令中使用 #(hash symbol) 作为分隔符,因为 /(forward slash symbol) 是我的模式的一部分。
【问题讨论】:
-
确保接受使用字符串比较的答案(例如,在 awk 中通过
index()或==或grep -Fx),或者如果它正在进行正则表达式比较,则每个 @987654326 都会转义@ 到\.并使用^和$分隔符以避免删除错误的行。