I want to add a newline at the end of a file only if it doesn\'t exists, this is to prevent multiple newlines at the end of the file.
I\'m hoping to use sed. Here\'s the
Since it removes newline if it's not there, you could simply use:
echo "" >> file; sed -ie '/^$/d;$G' file; sed -ie '/^$/d;$G' file
Adds a newline and removes everything then adds newline. Not the elegant way, but certainly works :)
Try using vi
or ex
:
ex -scwq foo.txt
or for multiple files:
vi -es +"bufdo wq" *.txt
ex -s +"bufdo wq" *.txt
which automatically adds EOL at EOF on file save if it's missing.
To apply for certain files recursively, use a new globbing option (**
) such as **/*.txt
(enable by shopt -s globstar
).