如何在Linux上向行尾添加行

Ant*_*est 107 linux shell

我想添加以下2行......

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1600x1200"
Run Code Online (Sandbox Code Playgroud)

到目录中找到的文件vncservers的末尾..../etc/sysconfig /

我怎样才能做到这一点?

谢谢

use*_*079 208

通过>>重定向回声输出的最简单方法

echo 'VNCSERVERS="1:root"' >> /etc/sysconfig/configfile
echo 'VNCSERVERARGS[1]="-geometry 1600x1200"' >> /etc/sysconfig/configfile
Run Code Online (Sandbox Code Playgroud)

  • 它取决于最后添加的行,而不是当前命令.当您执行$ echo"foobar">>文件时,换行符已经存在.如果您执行$ echo -n"foobar">>文件,则不会将换行符附加到行尾,因此您将在同一行中写入. (10认同)
  • 在写入系统文件的sudo环境中,这不起作用.你不能sudo >>.否则,它工作正常. (9认同)
  • @Dennis那是因为解析命令行的方式.'sudo abc >> def'将'sudo abc'然后'>> def'输出.为了sudo整个'abc >> def'位,你必须做这样的事情:sudo sh -c"echo'VNCSERVERS = \"1:root \"'>>/etc/sysconfig/configfile"(注意内部双引号必须转义) (9认同)
  • 出于好奇,如何在不创建新行的情况下将文本附加到文件中? (3认同)
  • 使用你可以"sed"命令如下:---------- sed -i"$ a some text"somefile.txt --------- -i:编辑文件到位,$找到文件的结尾,a:追加 (3认同)
  • 所以echo命令负责新行.我永远不会想到这一点.谢谢,非常有用. (2认同)