以下命令是为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
答案 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