@ dogbane имеет хороший простой ответ для удаления начальных пустых строк.Вот простая команда awk, которая удаляет только завершающие строки.Используйте это вместе с командой sed @ dogbane для удаления начальных и конечных пробелов.
awk '{ LINES=LINES $0 "\n"; } /./ { printf "%s", LINES; LINES=""; }'
Это довольно просто в работе.
- Добавлять каждую строку в буфер по мере его чтения.
- Для каждой строки, которая содержит символ, распечатайте содержимое буфера и затем очистите его.
Таким образом, единственные вещи, которые буферизуются и никогда не отображаются, это любые пробелы в конце.
Я использовал printf вместо print, чтобы избежать автоматического добавления новой строки, поскольку я использую новые строки для разделения строк в буфере.