【问题标题】:How to add lines to end of file on Linux如何在 Linux 上将行添加到文件末尾
【发布时间】:2013-05-25 06:52:02
【问题描述】:

我想添加以下两行:

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

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

我该怎么做?

【问题讨论】:

  • 您可以使用viemacs。你知道如何使用这些吗?我不是要讽刺。

标签: linux shell


【解决方案1】:

最简单的方法是将echo的输出重定向到>>

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

【讨论】:

  • 出于好奇,如何在不创建新行的情况下将文本附加到文件中?
  • 这取决于最后添加的行,而不是您当前的命令。当您执行 $ echo "foobar" >> 文件时,换行符已经存在。如果您执行 $ echo -n "foobar" >> file,您不会将换行符附加到行尾,因此您将在同一行中写入。
  • 这在 sudo 环境中写入系统文件时不起作用。你不能 sudo >>。否则,它工作正常。
  • 使用 can you "sed" 命令如下: ---------- sed -i "$ a some text" somefile.txt --------- - i:就地编辑文件,$查找文件结尾,a:追加
  • @Dennis 那是因为命令行的解析方式。 'sudo abc >> def' 将 'sudo abc' 然后 '>> def' 输出。为了 sudo 整个 'abc >> def' 位,您必须执行以下操作: sudo sh -c "echo 'VNCSERVERS=\"1:root\"' >> /etc/sysconfig/configfile" (注意内部双引号必须转义)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
  • 2017-10-14
  • 1970-01-01
相关资源
最近更新 更多