Como obter uma lista das home pages do pacote em uma seção do repositório a partir da linha de comando?

1

Há algum tempo, perguntei aqui sobre como obter a lista de pacotes em uma seção de repositório na linha de comando .

De acordo com o Gerenciador de Pacotes Synaptic, muitos desses pacotes apresentam uma home page. Como posso adicionar isso à minha lista de pacotes gerados automaticamente a partir da linha de comando?

Não parece ser tão simples quanto adicionar uma opção de argumento a qualquer uma das respostas anteriores.

    
por Serge Stroobandt 08.04.2015 / 13:59

2 respostas

2

Você pode estender a resposta da Braim para simplesmente recuperar os nomes dos pacotes, depois obter as informações completas do pacote para cada, e awk abaixo do formato.

aptitude -F'%p' search '?section(hamradio) ?architecture(amd64)' \
| xargs apt-cache show \
| awk '/^Package/ {printf("\n"$2)} /^Homepage/ {printf (": "$2)}'

Estou adicionando um limite de arquitetura adicional à consulta para interromper (no meu caso) as duplicatas na arquitetura i386. Você poderia omitir isso se quisesse.

acfax
aldo
antennavis: http://www.include.gr/antennavis.html
aprsd: http://sourceforge.net/projects/aprsd/
aprsdigi: http://aprsdigi.sourceforge.net/

Os dois primeiros não possuem páginas iniciais especificadas. Os últimos três fazem.

Se você quer apenas aqueles com páginas iniciais, sugiro mudar o awk para imprimir somente quando encontrar uma página inicial. Nós vamos armazenar o nome do pacote em uma variável. Assim:

... | awk '/^Package/ {p=$2} /^Homepage/ {printf ("%s: %s\n", p, $2)}'
    
por Oli 08.04.2015 / 14:26
0

Eu limpei a ótima resposta de Oli e fiz isso conditional . O $1="";sub(FS,""); code hack acaba com o primeiro campo Description-en: e o separador de campo de espaço único, tudo de uma forma muito concisa. É explicado aqui .

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")}}'

Agora, ele gera linhas completas de tabelas Pandeg Markdown , que são convertidas em um HTML table no meu site .

|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|
    
por Serge Stroobandt 06.05.2015 / 22:42