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
dvd::rip no Linux Mint 20 na gambiarra
makepkg - ERROR: Can't make output package in current directory [Resolvido]
Contador de Palavras no Terminal
Executando um Comando ou Programa como Outro Usuário
UMPlayer no Debian Ubuntu e Linux Mint
Leitura recomendada
Eliminando linhas de comentário ou linhas em branco no Linux
Executando comandos em looping no shell
Remover tags HTML com SED
Busca por string dentro dos arquivos
Testando se uma variável é número em shell script
Comentários
Nenhum coment�rio foi encontrado.