Решение Vim
Можно выполнить эту команду (благодарим Conspicuous Compiler за предложение этого):
vim "+%s/\n\(.\+\)*/;\1\n\1" sample.txt
В качестве альтернативы и, возможно, более привычного варианта, запустите Vim, откройте файл и введите команду ex:
:%s/\n\(.\+\)*/;\1\n\1
Пояснение:
Замена шаблона:
\n
\(.+\)
, которая составляет всю следующую строку. Последующий квантификатор *
просто указывает, что совпадений может быть ноль или больше со следующими:
\1
\n
\1
. После:
Да, с помощью небольшой утилитыrecsel
(из пакета recutils
):
$ guix search openjdk | recsel -p name,version
name: openjdk
version: 9.181
name: openjdk
version: 14.0
...