Существует еще более короткий способ удаления пустых строк в AWK
:
awk 'NF' file
Но чтобы получить желаемый результат, достаточно всего лишь одной строчки:
awk 'NF {printf("%s ", $0); i++;} ! (i % 2) {printf("\n");}' file
Пояснение
В AWK
пустая строка означает, что строка/запись не имеет полей, то есть переменная NF
(Number of Fields) равна нулю. Приведенная выше строка будет выполнена только в том случае, если NF > 0
, при этом будут напечатаны все строки, кроме пустых.
Счетчик i++
- это счетчик непустых строк.
Оператор !(i % 2)
используется для печати двух последовательных непустых строк в соответствии с желаемым способом вывода, то есть каждый раз, когда находится кратное 2, оператор modulo
!(i % 2)
выдает 1, что завершает конкатенацию двух непустых строк.
Как указал @toon в трекере ranger
, ranger
не предоставляет никаких диалогов выбора редактора, если РЕДАКТОР не установлен. Он прибегает к жестко закодированному vim
, но хакерам Debian/Ubuntu patch ranger для использования sensible-editor
, который представляет собой bash-скрипт, никак не связанный с updates-alternatives
, и сохраняет выбор редактора в~/.selected_editor
:
$ cat ~/.selected_editor
# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/bin/ed"
Я предполагаю, что этот sensible-editor
bash-скрипт был реализован как хак, потому что update-alternatives
работает на системном уровне, и пользователям без root-прав нужно было отредактировать конфигурацию bash, чтобы выбрать свой РЕДАКТОР (, который не работает для всех ).
Вместо неявного исправления ranger
разработчики Debian могли явно установить EDITOR=sensible-editor
для сеансов на уровне пользователя. «Явное лучше, чем неявное». По крайней мере, так мы не проведем здесь так много времени. Копаясь man
, я обнаружил, что sensible-editor
объясняется на этой странице политики :
If it is very hard to adapt a program to make use of the EDITOR or PAGER variables, that program may be configured to use /usr/bin/sensible-editor and /usr/bin/sensible-pager as the editor or pager program respectively.
И, согласно этому тексту, ranger
не следует исправлять, потому что он уже знает и использует РЕДАКТОР.
Завершая это заключительными разглагольствованиями, почему ed
дается как выбор уровня пользователя -редактора Linux в 2018 году ???..
Проверьте, на какой редактор указывает сама ОС. Я думаю, рейнджер смотрит на текущую версию по умолчанию для ОС. Измените предпочтительный редактор ОС, и я думаю, что это изменит рейнджеров.
обновление sudo -альтернативы --редактор конфигурации
Введите нужный номер и нажмите Enter.
В вашем случае
auto mode
/bin/ed - priority -100
Каждая альтернатива имеет связанный с ней приоритет. Когда группа ссылок находится в автоматическом режиме, альтернативы, на которые указывают члены группы, будут иметь наивысший приоритет.
Установить приоритет равным 10
Измените это, и все будет хорошо.