Некоторое время назад я спрашивал здесь окак получить список пакетов в разделе репозитория из командной строки.
Согласно Synaptic Package Manager, многие из этих пакетов имеют домашнюю страницу. Как мне добавить ее в мой автоматически сгенерированный список пакетов из командной строки?
Кажется, это не так просто, как добавить вариант аргумента к любому из предыдущих ответов.
решение1
Вы могли бы расширитьОтвет Браймачтобы просто извлечь имена пакетов, затем получить полную информацию о пакете для каждого и awk
сохранить ее для форматирования.
aptitude -F'%p' search '?section(hamradio) ?architecture(amd64)' \
| xargs apt-cache show \
| awk '/^Package/ {printf("\n"$2)} /^Homepage/ {printf (": "$2)}'
Я добавляю дополнительный архитектурный лимит в запрос, чтобы остановить (в моем случае) дубликаты в архитектуре i386. Вы можете пропустить это, если хотите.
acfax
aldo
antennavis: http://www.include.gr/antennavis.html
aprsd: http://sourceforge.net/projects/aprsd/
aprsdigi: http://aprsdigi.sourceforge.net/
У первых двух не указаны домашние страницы. У последних трех они указаны.
Если вам нужны только те, у которых есть домашние страницы, я предлагаю переключить на awk
печать только при нахождении домашней страницы. Мы сохраним имя пакета в переменной. Вот так:
... | awk '/^Package/ {p=$2} /^Homepage/ {printf ("%s: %s\n", p, $2)}'
решение2
Я убралсяОтличный ответ Олии сделал этоусловный. $1="";sub(FS,"");
Кодовый хак убирает первое Description-en:
поле и разделитель полей в виде одного пробела, все очень лаконично. Этообъяснено здесь.
aptitude -F'%p' search '~r native ~s hamradio' \
|xargs apt-cache show \
|awk '/^Package/{name=$2} \
/^Description-en/{$1="";sub(FS,"");description=$0}
/^Description-en/{description=$0} \
/^Homepage/{url=$2} \
/^$/{if(url) {printf("|["name"]("url")|"description"|\n"); url=""} \
else {printf("|"name"|"description"|\n")}}'
Теперь он дает полныйТаблица разметки Pandocстроки, которые в конечном итоге преобразуются вHTML-таблица на моем сайте.
|acfax|Receive faxes using your radio and sound card|
|aldo|Morse code training program|
|[antennavis](http://www.include.gr/antennavis.html)|antenna radiation pattern visualization software|
|[aprsd](http://sourceforge.net/projects/aprsd/)|Internet Gateway for the Automatic Position Reporting System|
|[aprsdigi](http://aprsdigi.sourceforge.net/)|digipeater for APRS|
|[ax25-apps](http://aprsdigi.sourceforge.net/)|AX.25 ham radio applications|
|[ax25-node](http://aprsdigi.sourceforge.net/)|Amateur Packet Radio Node program|
|[ax25-tools](http://aprsdigi.sourceforge.net/)|tools for AX.25 interface configuration|
|[ax25-xtools](http://aprsdigi.sourceforge.net/)|tools for AX.25 interface configuration -- X11-based|
|[ax25mail-utils](http://aprsdigi.sourceforge.net/)|hamradio utilities for fbb|