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.
Outras dicas deste autor
Instalando o WhatsApp Desktop no Slackware Current 64Bits
Instalando o Shutter no Linux Mint 20 e Ubuntu 20.04
brModelo 3.3 empacotado para o Linux Mint 20
Troque o Basename por Expansão de Parâmetros
Instalando o EasyMp3Gain no Deepin 20
Leitura recomendada
SED - combinando o conteúdo de dois arquivos
Como fazer "quit" no SED
Executando comandos em looping no shell
Screen (janelas) no modo shell?
Múltiplas expressões no SED
Comentários
Nenhum comentário foi encontrado.