Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to append text to a file. So I wrote in bash

echo text >> file.conf

However it doesn't leave a new line. So I can only do this once. How do I add a new line?

share|improve this question
3  
What do you mean? An extra newline? echo adds a newline by default. – Dennis Williamson Jun 21 '10 at 9:58
2  
echo by default does leave a newline - do you need it to leave two? Also, if you're running this on a linux system and opening the file on a windows or mac system, make sure your editor supports *nix newlines, or it'll appear all on one line even though it's on multiple lines. – Darth Android Jun 21 '10 at 10:01
up vote 39 down vote accepted

option 1:

% echo -e "text\n" >> file.conf

option 2:

% ( echo text ; echo "" ) >> file.conf

option 3:

% echo text >> file.conf
% echo ""  >> file.conf
share|improve this answer
4  
You can drop the empty argument (echo "" => echo). Also, option 4: echo $'text\n', which is useful for any command as the $'' is interpreted by bash. – Roger Pate Jun 24 '10 at 23:55

Just to add to akira's response

Option 4:

use ctrl-v ctrl-m key combos twice to insert two newline control character in the terminal. Ctrl-v lets you insert control characters into the terminal. You could use the enter or return key instead of the ctrol-m if you like. It inserts the same thing.

This ends up looking like echo text^M^M >> file.conf

share|improve this answer
1  
If you need linefeeds instead of carriage returns (linux/unix), try echo "text^J^J" >> file.conf Typing ^J might actually insert a literal newline, just make sure to put the quotes and it'll be good. – Darth Android Jun 21 '10 at 10:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .