想要修改 hosts 文件,比如原文件如下
192.168.1.1 host1.localdomain
用了一个有两条命令的脚本
#!/bin/sed -f
/\s\+host1.localdomain$/d
$a\
192.168.1.2 host1.localdomain
结果:一个空文件
如果把 d 命令移动到 a 后面,反而得到了正确的结果
192.168.1.2 host1.localdomain
被这个搞晕了,难道 sed 有多条命令的时候是从后往前执行的?
1
param 2017-06-25 03:05:16 +08:00 via Android
|
2
DiamondbacK 2017-06-25 08:29:13 +08:00 1
文本的第一行进入模式空间,匹配到 /\s\+host1.localdomain$/,所以执行 d 命令,任何时候 d 命令都会结束当前模式空间的处理,读取文本的下一行。因为已经是最后一行,所以脚本结束。
|