Как получить список домашних страниц пакета в разделе репозитория из командной строки?

Некоторое время назад я спросил здесь о , как получить список пакетов в разделе репозитория из командной строки .

По словам Synaptic Package Manager, многие из этих пакетов имеют домашнюю страницу. Как я могу добавить это в мой автоматически сгенерированный список пакетов из командной строки?

Synaptic Package Manager showing link to package home page

Это не так просто, как добавить параметр аргумента к любому предыдущие ответы.

1
задан 13 April 2017 в 15:24

2 ответа

Вы могли расширить ответ Braim, чтобы просто задержать имена пакета, затем получить полную информацию о пакете для каждого, и 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
ответ дан 7 December 2019 в 14:00

Я очистил большой ответ Oli и сделал его условным выражением. $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|
0
ответ дан 7 December 2019 в 14:00

Другие вопросы по тегам:

Похожие вопросы: