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


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
  • 1
    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'. – Lri Jun 9 '12 at 3:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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