Append file contents to the bottom of existing file in Bash

Grimlockz picture Grimlockz · Nov 1, 2012 · Viewed 167.9k times · Source

Possible Duplicate:
Shell script to append text to each file?
How to append output to the end of text file in SHELL Script?

I'm trying to work out the best way to insert api details into a pre-existing config. I thought about using sed to insert the contents of the api text file to the bottom of the config.inc file. I've started the script but it doesn't work and it wipes the file.

#!/bin/bash

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

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

What am I doing wrong?

Answer

William Pursell picture William Pursell · Nov 1, 2012

This should work:

 cat "$API" >> "$CONFIG"

You need to use the >> operator to append to a file. Redirecting with > causes the file to be overwritten. (truncated).