Macos sed-OSX命令在Ubuntu中不起作用

Macos sed-OSX命令在Ubuntu中不起作用,macos,ubuntu,sed,Macos,Ubuntu,Sed,下面的命令是为OSX编写的,但我不知道如何将其移植到Ubuntu 我收到如下所列的错误 错误 sed:-e表达式#1,字符74:unterminated's'命令 命令 sed-i'0,/ExecStart=/s//Environment=“KUBELET\u EXTRA\u ARGS=--cgroupdriver=cgroupfs”\n&//etc/systemd/system/KUBELET.service.d/10 kubeadm.conf我在Ubuntu服务器16.04上用GNU sed

下面的命令是为OSX编写的,但我不知道如何将其移植到Ubuntu

我收到如下所列的错误

错误
sed:-e表达式#1,字符74:unterminated's'命令

命令
sed-i'0,/ExecStart=/s//Environment=“KUBELET\u EXTRA\u ARGS=--cgroupdriver=cgroupfs”\n&//etc/systemd/system/KUBELET.service.d/10 kubeadm.conf

我在
Ubuntu服务器16.04
上用
GNU sed 4.2.2
对它进行了测试,命令完成了它的功能:在一行中插入指定的文本,在遇到以
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
以及:


它没有在Ubuntu 16.04上为我抛出错误。该错误似乎表明替换命令
s/search/replace/
中缺少
/
。但是,您的命令看起来是完整的,并且运行得非常完美。是否以前的命令
sudo sed-i'/swap/s/^\(.*\)$/#\1/g'/etc/fstab
会影响这一点?我正在运行一台带有bento ubuntu 16.04服务器映像的流浪者机器@aranfleel它不应该:这个命令看起来很好,除了您的
/etc/fstab
之外,不会影响任何东西。请分别运行每个命令,以便找到问题的根源。
$ cat 10-kubeadm.conf
Line001
Line002 ExecStart=A
Line003 ExecStart=B
Line004
$ sed -i '0,/ExecStart=/s//Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=cgroupfs"\n&/' 10-kubeadm.conf
$ cat 10-kubeadm.conf
Line001
Line002 Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=cgroupfs"
ExecStart=A
Line003 ExecStart=B
Line004