В перле:
perl -l -p -e 'BEGIN {$/=""; $\="\n\n"}; s/\n/:/mg' input
-l
позволяет Perl автоматически обрабатывать окончания записи -.
-p
помещает неявный while... print
цикл вокруг скрипта, так что он автоматически считывает, обрабатывает и затем печатает каждую запись (аналогично awk ).
установка разделителя входных записей($/
)пустым с помощью $/=""
указывает perl читать ввод в режиме абзаца (одна или несколько пустых строк отделяют каждую запись ).
$\="\n\n"
устанавливает разделитель выходных записей на два символа новой строки, так что записи разделяются пустой строкой.
затем он заменяет все новые строки в каждой записи на :
.
Это работает для любого количества полей в каждой записи. Каждая строка в записи представляет собой отдельное поле.
Пример вывода:
$ perl -lpe 'BEGIN {$/=""; $\="\n\n"}; s/\n/:/mg' input
Record:One
Record:Two
примечание :после Record:Two
есть пустая строка.
Драйвер Intel Xorg уже давно устарел, и его не рекомендуется использовать, и для надлежащего драйвера настройки режима у вас должна быть эта конфигурация:
Section "Device"
Identifier "modesetting"
Driver "modesetting"
Option "TearFree" "True"
EndSection
Хотя я не уверен, что эта функция вошла в официальную версию Xorg. Подробнее здесь:https://www.mupuf.org/blog/2018/09/24/teaching_x_modesetting_new_tricks/
И все же аварии быть не должно. Пожалуйста, сообщите об ошибке здесь:https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs