Answers:
确实
该错误意味着在没有引号的情况下,您的外壳使用空格分隔参数。之间的空间maxmemory
和26gb
因此被认为是终止所述第一参数,它因而缺乏一个终端/
时sed
来解析参数作为命令之一。
将您的正则表达式放在单引号之间,以使您的shell不会将其拆分为多个参数并将其sed
作为一个参数传递,即可解决此问题:
$ sed s/maxmemory.*/maxmemory 26gb/ /some/file/some/where.txt
sed: -e expression n°1, caractère 23: commande `s' inachevée
而
$ sed 's/maxmemory.*/maxmemory 26gb/' /some/file/some/where.txt
作品。
希望能有所帮助。
sed
这样做。这是外壳程序执行的。
您的用例将通过此命令解决。
sed -i -e 's/#maxmemory.*/maxmemory 26gb/g' /etc/redis/redis.conf
/
,例如@
或|
。请参阅此处:stackoverflow.com/a/9366940/4561887和此处:unix.stackexchange.com/a/259087/114401。