Цель состоит в том, чтобы получить версию пакета с исходным кодом в deb-репозитории на основе prespro.
Поскольку отслеживание пакетов с исходным кодом все еще является экспериментальным в представительском представлении, у команды list есть проблемы с --list-параметр формата и, следовательно, не может использоваться в этом случае использования.
Отрывок вывода команды для распечатки всей информации о отслеживаемых исходных пакетах:
...
Distribution: buster
Source: linux-latest
Version: 102
Files:
pool/stable/l/linux-latest/linux-doc_4.19+102_all.deb a 2
pool/stable/l/linux-latest/linux-headers-amd64_4.19+102_amd64.deb b 1
pool/stable/l/linux-latest/linux-headers-cloud-amd64_4.19+102_amd64.deb b 1
pool/stable/l/linux-latest/linux-headers-rt-amd64_4.19+102_amd64.deb b 1
pool/stable/l/linux-latest/linux-image-amd64_4.19+102_amd64.deb b 1
pool/stable/l/linux-latest/linux-image-amd64-dbg_4.19+102_amd64.deb b 1
pool/stable/l/linux-latest/linux-image-cloud-amd64_4.19+102_amd64.deb b 1
pool/stable/l/linux-latest/linux-image-cloud-amd64-dbg_4.19+102_amd64.deb b 1
pool/stable/l/linux-latest/linux-image-rt-amd64_4.19+102_amd64.deb b 1
pool/stable/l/linux-latest/linux-image-rt-amd64-dbg_4.19+102_amd64.deb b 1
pool/stable/l/linux-latest/linux-perf_4.19+102_all.deb a 2
pool/stable/l/linux-latest/linux-source_4.19+102_all.deb a 2
Distribution: buster
Source: linux-latest
Version: 103
Files:
pool/stable/l/linux-latest/linux-doc_4.19+103_all.deb a 0
pool/stable/l/linux-latest/linux-headers-amd64_4.19+103_amd64.deb b 1
pool/stable/l/linux-latest/linux-headers-cloud-amd64_4.19+103_amd64.deb b 1
pool/stable/l/linux-latest/linux-headers-rt-amd64_4.19+103_amd64.deb b 1
pool/stable/l/linux-latest/linux-image-amd64_4.19+103_amd64.deb b 1
pool/stable/l/linux-latest/linux-image-amd64-dbg_4.19+103_amd64.deb b 1
pool/stable/l/linux-latest/linux-image-cloud-amd64_4.19+103_amd64.deb b 1
pool/stable/l/linux-latest/linux-image-cloud-amd64-dbg_4.19+103_amd64.deb b 1
pool/stable/l/linux-latest/linux-image-rt-amd64_4.19+103_amd64.deb b 1
pool/stable/l/linux-latest/linux-image-rt-amd64-dbg_4.19+103_amd64.deb b 1
pool/stable/l/linux-latest/linux-perf_4.19+103_all.deb a 2
pool/stable/l/linux-latest/linux-source_4.19+103_all.deb a 2
...
Цель здесьполучить версию, например, linux-latest
исходного пакета, используя, например, имя двоичного пакета linux-source_4.19+103_all.deb
, выделив все строки между:
1) многострочным шаблоном:
Distribution: buster
Source: linux-latest
2) строковый шаблон:
linux-source_4.19+103_all.deb
Имя дистрибутива, имя пакета с исходным кодом и имена двоичных пакетов являются переменными, поэтому число захваченных строк является переменным, но базовый макет остается постоянным.
По этой же причине кажется, что pcre2grep --multiline
здесь нельзя использовать.
Я не вижу способа использовать многострочные паттерны с awk или sed, хотя должен бытьКстати, хотя бы с awk.
Другие ответы на стекопоток, кажется, здесь не применимы:
Есть предложения?