Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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've learned that the BSD version of sed included with OS X doesn't provide an intuitive way to add newlines. I've found a few notes about it, but I don't understand yet, how to extend the examples to solve my problem.

I need to append several lines to a file and found that the lines I add do not include newline characters.

My shell script currently contains the following:

sed '/match string/  a\
newline string' ./inputfile > ./outputfile

And, I'm trying to apply the tip I found here Newlines in sed on Mac OS X

share|improve this question
up vote 1 down vote accepted

Nevermind. While reformatting the code portion of this question, a solution became clear:

I found that the following does exactly what I need:

sed '/match string/  a\
newline string \
' ./inputfile > ./outputfile
share|improve this answer
To do that on a single line, you can use ANSI-C quoting to unescape \n. Additional backslashes are required before the newlines. echo $'111\n333' | sed $'/111/a\\\n222\\\n'. – user495470 Jun 9 '12 at 3:06

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.