如何在Linux上将行添加到文件末尾


120

我想添加以下2行...

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1600x1200"

到目录vncservers的末尾。.../ etc / sysconfig /

我怎样才能做到这一点?

谢谢


2
您可以使用viemacs。你知道怎么用吗?我不是想讽刺。

Answers:


232

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

echo 'VNCSERVERS="1:root"' >> /etc/sysconfig/configfile
echo 'VNCSERVERARGS[1]="-geometry 1600x1200"' >> /etc/sysconfig/configfile

3
出于好奇,您如何在不创建新行的情况下将文本追加到文件中?
Martin Hansen

11
它取决于最后添加的行,而不取决于您当前的命令。当您执行$ echo“ foobar” >>文件时,换行符已经存在。如果执行$ echo -n“ foobar” >>文件,则不会在行的末尾附加换行符,因此将在同一行中编写。
user897079 2015年

9
在sudo环境中写入系统文件时,这不起作用。您不能sudo >>。否则,它将正常工作。
丹尼斯

4
可以使用如下的“ sed”命令:---------- sed -i“ $ a some text” somefile.txt --------- -i:在适当位置编辑文件,$查找文件末尾,一个:附加
Lunf

9
@Dennis这是因为命令行的解析方式。'sudo abc >> def'将'sudo abc',然后是'>> def'输出。为了对整个'abc >> def'进行sudo,必须执行以下操作:sudo sh -c“ echo'VNCSERVERS = \” 1:root \“” >> / etc / sysconfig / configfile“(请注意,内部的双引号必须转义)
Urhixidur
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.