这是使用sed的解决方案:
$ sed -n 'H;${x;s/^n//;s/nameserver .*$/nameserver 127.0.0.1n&/;p;}' resolv.conf# Generated by NetworkManagerdomain dhcp.example.comsearch dhcp.example.comnameserver 127.0.0.1nameserver 10.0.0.1nameserver 10.0.0.2nameserver 10.0.0.3工作原理:首先,用
-n标志禁止sed的输出。然后,对于每一行,我们将其追加到保留空间,并用换行符将其分隔:
H
当我们到达文件末尾(由寻址
$)时,我们将保留空间的内容移至模式空间:
x
如果模式空间中的第一行为空白,则我们将其替换为空。
s/^n//
然后,我们用包含的行替换第一行,
nameserver其中包含
nameserver127.0.0.1新行(您的版本
sed可能不支持
n,在这种情况下,请
n用文字换行符替换)和原始行(由表示
&):
s/nameserver .*$/nameserver 127.0.0.1n&/
现在我们只需要打印结果:
p



