bash将文件内容附加到现有文件的底部

Gri*_*ckz 97 bash awk sed append

可能重复:
用于将文本附加到每个文件的Shell脚本?
如何在SHELL脚本中将输出附加到文本文件的末尾?

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

#!/bin/bash

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

sed -e "\$a $API" > $CONFIG
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Wil*_*ell 210

这应该工作:

 cat "$API" >> "$CONFIG"
Run Code Online (Sandbox Code Playgroud)

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

  • 对于单个字符串,使用`echo`就像这个`echo'导出JAVA_HOME =/usr/lib/jvm/jdk1.8.0_112">>〜/ .bashrc` (6认同)
  • @PTHuynh “更多”是一个糟糕的选择。“more”的目的是将输出缓冲到 tty 并将其分成多个部分以供交互式人类使用。写入文件没有任何交互性。如果某个 shell 有 `more` 作为内置函数,但没有 `cat`,则是一个实现细节。 (3认同)