shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: remoção de pacotes antigos


From: Julio C. Neves
Subject: Re: [shell-script] Re: remoção de pacotes antigos
Date: Fri, 2 Dec 2016 12:51:29 -0200

Uns vc usou o hifen, no último não. Aí ficou meio confuso.

Deixando o hífen em todos:

$ echo '/repos/rpm/qa/centos6/x86_64/nome_pacoteA-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteB-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteC-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteD-xxx-base-1.0.1-45-1.2.1-20.x86_64.rpm' | sed -r 's|^.*/(.*)\.x.*$|\1|'
nome_pacoteA-1.2.1-20
nome_pacoteB-1.2.1-20
nome_pacoteC-1.2.1-20
nome_pacoteD-xxx-base-1.0.1-45-1.2.1-20

Tirando o hífen de todos:

$ echo '/repos/rpm/qa/centos6/x86_64/nome_pacoteA-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteB-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteC-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteD-xxx-base-1.0.1-45-1.2.1-20.x86_64.rpm' | sed -r 's|^.*/([^-]+)-(.*)\.x.*$|\1\2|'
nome_pacoteA1.2.1-20
nome_pacoteB1.2.1-20
nome_pacoteC1.2.1-20
nome_pacoteDxxx-base-1.0.1-45-1.2.1-20

Abcs,
Julio
@juliobash

P
róximos cursos de Shell
Cidade         Local Período
São Paulo 4Linux 05
-09/12
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 1 de dezembro de 2016 20:53, Rodrigo Ribeiro address@hidden [shell-script] <address@hidden> escreveu:
 

Caros, boa noite,

Primeiramente muito obrigado pela ajuda!

Itamar,

Desse jeito que vc passou o resultado foi:


nome_pacoteA    x86_64  1.2.1-20
nome_pacoteB    x86_64  1.2.1-20
nome_pacoteC    x86_64  1.2.1-20
nome_pacoteD-xxx-base   x86_64  1.0.1-45-1.2.1-20

Preciso gerar uma lista que fique:

nome_pacoteA12120
nome_pacoteB12120
nome_pacoteC12120
nome_pacoteD-xxx-base1014512120


A forma que o Julio me passou eu até consegui tirar os caracters com o sed, porém não consegui concatenar com o nome dos pacotes da forma que exemplifiquei acima.



2016-11-29 13:02 GMT-02:00 address@hidden [shell-script] <address@hidden.br>:
 

Caro Rodrigo


Veja se essa solução lhe atende.
Aqui eu listo o nome do pacote, a arquitetura e a versão separados por tab

echo '/repos/rpm/qa/centos6/x86_64/nome_pacoteA-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteB-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteC-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteD-xxx-base-1.0.1-45-1.2.1-20.x86_64.rpm' |
while read pacote
do
  arq=$(basename $pacote)
  arch=$(echo $arq | awk -F '.' '{print $(NF-1)}')
  version=$(echo ${arq%.${arch}*} | grep -oE '[0-9.-]+$')
  printf "%s\t%s\t%s\n" ${arq%${version}*} $arch ${version#-}
done


[]'s
Itamar




--
Rodrigo Ribeiro
Cel: 7984-9785
Twitter: @ribeirrs



reply via email to

[Prev in Thread] Current Thread [Next in Thread]