Вот версия sed
, которая должна распечатать раздетый файл:
sed -i .bak -e '/./,$!d' -e :a -e '/^\n*$/{$d;N;ba' -e '}' foo.txt
-i
говорит ему выполнить редактирование на месте, а .bak
говорит, что сначала нужно сделать резервную копию оригинала с расширением .bak
. Если проблема связана с памятью, вы можете использовать ''
вместо .bak
, и резервное копирование не будет. Я не рекомендую, если в этом нет крайней необходимости.
Первая команда ('/./,$!d'
должна избавить от всех начальных пустых строк), а остальная - обработать все конечные пустые строки.
См. этот список удобных sed
1-строчных для других интересных вещей, которые вы можете связать вместе.