将文件内容附加到 Bash 中现有文件的底部 [重复]

Posted

技术标签:

【中文标题】将文件内容附加到 Bash 中现有文件的底部 [重复]【英文标题】:Append file contents to the bottom of existing file in Bash [duplicate] 【发布时间】:2012-10-22 07:33:25 【问题描述】:

可能重复:Shell script to append text to each file?How to append output to the end of text file in SHELL Script?

我正在尝试找出将 api 详细信息插入到预先存在的配置中的最佳方法。我想过使用sed将api文本文件的内容插入到config.inc文件的底部。我已经启动了脚本,但它不起作用,它会擦除​​文件。

#!/bin/bash

CONFIG=/home/user/config.inc
API=/home/user/api.txt

sed -e "\$a $API" > $CONFIG

我做错了什么?

【问题讨论】:

【参考方案1】:

这应该可行:

 cat "$API" >> "$CONFIG"

您需要使用>> 运算符来附加到文件。使用> 重定向会导致文件被覆盖。 (截断)。

【讨论】:

对于单个字符串,使用echo 这样echo "export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_112" >> ~/.bashrc 为什么是echo 而不是cat cat 将命名文件的内容写入标准输出。 echo 将参数写入标准输出。他们做不同的事情。 应该使用 'more' 而不是 'cat' 因为 cat 会产生一个新进程。 @PTHuynh more 是一个糟糕的选择。 more 的目的是将输出缓冲到 tty 并将其分解为供交互式人类消费的部分。写入文件没有任何交互性。如果某个 shell 有 more 作为内置函数但没有 cat 是实现细节。

以上是关于将文件内容附加到 Bash 中现有文件的底部 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 bash 脚本批量重命名 FTP 服务器上的文件

c#无法将文本附加到现有文件[关闭]

Bash循环涉及将文件名附加到单词

如何使用CURL附加现有文件?

如何将新数据附加到属性文件中的现有数据?

如何将文本附加到 Java 中的现有文件?