Pular para o conteúdo

Exibindo o nome completo dos pacotes instalados no Debian e derivados

Dica publicada em Shell Script / Expressões Regulares
Mauricio Ferrari (LinuxProativo) maurixnovatrento
Hits: 1.882 Categoria: Shell Script Subcategoria: Expressões Regulares
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Exibindo o nome completo dos pacotes instalados no Debian e derivados

Essa dica pode ajudar muitas pessoas a resolver vários problemas em relação ao uso do sed, como eu que tive dificuldades em montar um script por conta da minha base de conhecimento limitada em relação a ele.

O comando para exibir os pacotes instalados no sistema foi esse:

apt list --installed | sed -e 's| \[.*\]||g' -e 's|/.*now |_|g' -e 's| |_|g' -e '1d'

Existem outras formas, mas precisei listar dessa forma. Como estou fazendo essa dica com caráter didático, vou explicar o que eu fiz.

  • -e 's| \[.*\]||g' = Exclui tudo o que começa com " [" (com um espaço na frente incluso) e termina com ]. Aqui eu usei instruções de escape \[ e \], isso porque senão o sed vai pensar que eles fazem parte de uma instrução de expressão regular, mas na verdade estão como caracteres delimitadores.
  • -e 's|/.*now |_|g' = Substitui tudo o que começa com / e termina com "now " por _. Isso já deixa a primeira parte do nome do pacote já pronto. Note que eu usei outro delimitador para o sed por conta disso.
  • -e 's| |_|g' = Troca os espaços por _.
  • -e '1d' = Exclui a primeira linha, pois nela tinha o "Listing...", desnecessário.

Agora vamos comparar (estou usando a saída em partes):

apt list --installed
appimagelauncher/now 2.1.3-travis975~7408819+bionic amd64 [installed,local]
assaultcube-data/focal,focal,now 1.2.0.2.1-3 all [installed,automatic]
firefox/now 78.0.1+linuxmint1+ulyana amd64 [installed,upgradable to: 78.0.2+linuxmint1+ulyana]
gcc-10-base/focal,now 10-20200411-0ubuntu1 i386 [installed]

Com o sed:

apt list --installed | sed -e 's| \[.*\]||g' -e 's|/.*now |_|g' -e 's| |_|g' -e '1d'
appimagelauncher_2.1.3-travis975~7408819+bionic_amd64
assaultcube-data_1.2.0.2.1-3_all
firefox_78.0.1+linuxmint1+ulyana_amd64
gcc-10-base_10-20200411-0ubuntu1_i386

Pronto, assim listei os pacotes do jeito que eu queria.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Ocenaudio no Slackware - uma alternativa mais simples ao Audacity

Renomeando em massa sem precisar instalar comandos adicionais

Como empacotar programas compilados em DEB

junest - Mini Arch Linux dentro de sua Distro

Extraindo a Versão de um Pacote do Debian

Sed - como salvar alterações no arquivo

Como remover parêntesis dos nomes de arquivos

Ubuntu - Iniciar Conky no Login

Baixando todos os arquivos de uma URL com o wget

SED - substituir apenas a ocorrência N de uma string

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.