Here's a sed
version that should print out the stripped file:
sed -i .bak -e '/./,$!d' -e :a -e '/^\n*$/{$d;N;ba' -e '}' foo.txt
The -i
tells it to perform the edit in-place and the .bak
tells it to back up the original with a .bak
extension first. If memory is a concern, you can use ''
instead of .bak
and no backup will be made. I don't recommend unless absolutely necessary, though.
The first command ('/./,$!d'
should get rid of all leading blank lines), and the rest is to handle all trailing blank lines.
See this list of handy sed
1-liners for other interesting things you can chain together.