Проблема решена, но не связана с ней. Я напишу, как я отладил эту проблему.
Мне нужно было проверить /var/log/Xorg.0.log
, но файл был как-то обрезан, так что я пропустил ошибку.
tail -f /var/log/Xorg.0.log >> ~/tmp/Xorg.log
~/tmp/Xorg.log
. В моем случае, если хотите знать, xkbcomp
вылетел из-за ошибки сегментации из-за ошибки в файле конфигурации моей клавиатуры, унеся с собой все это. Я предполагаю, что xkbcomp
является более новой версией, чем та, что у меня была ранее (, потому что я обновил Debian ), и она менее устойчива к ошибкам конфигурации, чем старая версия.
Поскольку вы используете GNU sed, вы можете получить желаемые результаты, не прибегая к определяемая пользователем функция. Здесь мы используем пространство хранения для хранения увеличивающегося счетчика.
echo -e 'oAo\nooAoAoA\no' |
sed -En "/A/!d
p;:a
H;g
s/^(\n*).*/expr '\1' : '.*'/ep
g;s//\1/;x;s/^\n*//;s/A//;//ba
"
Выход:
oAo
1
ooAoAoA
2
3
4