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

标签 shell file text file-io 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>

引用文献

关于shell - 如何将文本 append 到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17701989/

相关文章:

java - 如何使用 java 将 getopts 参数传递给 shell 脚本

Bash for 带空格的循环

Android:共享下载的文件

linux - 使用/删除文本文件中包含特定字符串的行

java - 如何在 java 中运行 sh 命令并分配选项

linux - 如何让我的 Golang Web 服务器在后台运行?

c# - 如何在c#中一键更改2种类型的文件扩展名?

linux - 如何从外部硬盘删除 linux 上的文件权限?

c++ - 是否有一个很好的 Unix 命令来转储二进制文件的文本表示?

c++ - 如何在不使用带有 TEXT() 的字符串文字的情况下为 TCHAR* 赋值?