sed OSX命令在Ubuntu中不起作用

时间:2018-06-14 16:02:58

标签: macos ubuntu sed

以下命令是为OSX编写的,但我无法弄清楚如何将其移植到Ubuntu。

我收到如下所列的错误

错误

sed: -e expression #1, char 74: unterminated 's' command

命令

sed -i '0,/ExecStart=/s//Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=cgroupfs"\n&/' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

1 个答案:

答案 0 :(得分:1)

我在Ubuntu server 16.04上使用GNU sed 4.2.2对其进行了测试,并且该命令执行了它的目的:在遇到以{{开头的第一行之前,在一行上插入指定的文本1}}。如果该行包含ExecStart=但不包含在开头,则该行将被拆分,并且指定的文本将插入ExecStart=之前的行的末尾。

通过例子更好地证明:

ExecStart=

$ cat 10-kubeadm.conf
Line001
ExecStart=A
ExecStart=B
Line004
$ sed -i '0,/ExecStart=/s//Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=cgroupfs"\n&/' 10-kubeadm.conf
$ cat 10-kubeadm.conf
Line001
Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=cgroupfs"
ExecStart=A
ExecStart=B
Line004