shell - 如何将文本 append 到文件?

在 Linux 中将文本 append 到文件的最简单方法是什么?

我看了at this question ,但接受的答案使用了一个额外的程序(sed)我确信应该有一个更简单的方法使用 echo 或类似的。

最佳答案

怎么样:

echo "hello" >> <filename>

使用 >> 操作符将在文件末尾追加数据,而使用 > 将覆盖文件的内容(如果已经存在)。

你也可以用同样的方式使用printf:

printf "hello" >> <filename>

请注意,使用上述内容可能很危险。例如,如果您已经有一个文件并且您需要将数据 append 到文件的末尾并且您忘记添加最后一个 > 文件中的所有数据都将被销毁。您可以通过在 .bashrc 中设置 noclobber 变量来更改此行为:

set -o noclobber

现在,当您尝试执行 echo "hello"> file.txt 时,您将收到警告说 cannot overwrite existing file

要强制写入文件,您现在必须使用特殊语法:

echo "hello" >| <filename>

您还应该知道,默认情况下 echo 添加一个尾随换行符,可以使用 -n 标志来抑制它:

echo -n "hello" >> <filename>

引用文献

  • echo(1) - Linux man page
  • noclobber variable
  • I/O Redirection

https://stackoverflow.com/questions/17701989/

相关文章:

python - 如何在python中向后循环?

linux - 确保只有一个 Bash 脚本实例正在运行的最佳方法是什么?

python - 在 Python 脚本中,如何设置 PYTHONPATH?

python - isinstance ('aaa' , basestring) 和 isinsta

python - 如何以正确的方式平滑曲线?

python - 字典:获取键列表的值列表

linux - CURL 用于访问需要从其他页面登录的页面

linux - 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - U

unix - 创建守护进程时执行双叉的原因是什么?

python - 安装pycurl时出现"Could not run curl-config: [E