将文件内容附加到 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 中现有文件的底部 [重复]的主要内容,如果未能解决你的问题,请参考以下文章