Search code examples
sednewlinegnu

gsed add _single_ newline at end of file


I'm attempting to create a single newline at the end of a file. My command is this:

gsed -i '$a\\r' outfiles/*.txt

Somehow this creates two newlines, and I cannot figure out what I am doing wrong.

Any thoughts?


Solution

  • In my first thought I would on the last line substitute end of line with a newline.

    sed '$s/$/\n/'
    

    But my second thought is just nice:

    sed '$G'
    

    Grabbing from a hold space appends a newline to pattern space and then appends the hold space to pattern space. Because hold space is empty, it effectively adds just only the newline.