[Ubuntu-QC] Extraction de contenu avec SED

Steve Nadeau stevenado at gmail.com
Mer 23 Juil 20:29:35 UTC 2014


Merci Jean Christophe!!!

c'est la commande PARFAITE pour ce que je voulais faire, je ne suis
pas fameux avec la commande AWK et je viens d'en apprendre un paquet,
je pensais surtout à la commande SED mais c'est la meilleure!

je passe en paramètre $1 le nom du paquet de l'installation et j'ai le
résultat que je peux utiliser dans une commande apt-get purge,
vraiment excellent!!!!

donc, encore une fois, un gros merci!!!!!

bonne fin de journée et merci à tous pour le coup de main!

Steve
-----------------------------------
www.equipeautonomiste.ca
https://twitter.com/Autonomistes
http://www.linkedin.com/company/3225935
facebook.com/groups/equipeautonomiste


Le 23 juillet 2014 14:59, Jean Christophe André
<jean-christophe.andre at auf.org> a écrit :
> Le 2014-07-23 14:29, Steve Nadeau a écrit :
>
>> avec votre commande SED, ça ne donne pas non plus les résultats
>> escomptés, mais j'y ai découvert des astuces que j'ai pris en note
>> pour les mettre en pratique.
>>
>> voici comme exemple l'extrait de l'historique de l'installation de
>> firefox:i386 et ce que je désire obtenir comme résultat.
>>
>> Start-Date: 2014-07-21  16:23:56
>> Commandline: apt-get install firefox:i386
>> Install: libstartup-notification0:i386 (0.12-3ubuntu1, automatic),
>> libice6:i386 (1.0.8-2, automatic), libsm6:i386 (1.2.1-2, automatic),
>> firefox:i386 (30.0+build1-0ubuntu0.14.04.3), libdbusmenu-gtk4:i386
>> (12.10.3+14.04.20140612-0ubuntu1, automatic), libuuid1:i386
>> (2.20.1-5.1ubuntu20.1, automatic), libxt6:i386 (1.1.4-1, automatic),
>> libdbusmenu-glib4:i386 (12.10.3+14.04.20140612-0ubuntu1, automatic),
>> libxcb-util0:i386 (0.3.8-2ubuntu1, automatic)
>> Upgrade: gir1.2-dbusmenu-glib-0.4:amd64
>> (12.10.3+14.04.20140319-0ubuntu1, 12.10.3+14.04.20140612-0ubuntu1),
>> libdbusmenu-gtk4:amd64 (12.10.3+14.04.20140319-0ubuntu1,
>> 12.10.3+14.04.20140612-0ubuntu1), libuuid1:amd64 (2.20.1-5.1ubuntu20,
>> 2.20.1-5.1ubuntu20.1), libdbusmenu-glib4:amd64
>> (12.10.3+14.04.20140319-0ubuntu1, 12.10.3+14.04.20140612-0ubuntu1)
>> Remove: xul-ext-webaccounts:amd64 (0.5-0ubuntu2), firefox:amd64
>> (28.0+build2-0ubuntu2), xul-ext-unity:amd64
>> (3.0.0+14.04.20140416-0ubuntu1)
>> End-Date: 2014-07-21  16:24:13
>>
>>
>>
>> le résultat souhaité:
>>
>> libstartup-notification0:i386 libice6:i386 libsm6:i386 firefox:i386
>> libdbusmenu-gtk4:i386 libuuid1:i386 libxt6:i386 libdbusmenu-glib4:i386
>> libxcb-util0:i386
>
>
> Voici comment je raisonnerais pour résoudre ce problème :
> - les blocs de données à traiter sont repérés par un début "^Start-Date: "
> et une fin "^End-Date: " ;
> - la reconnaissance du bloc de données qui nous intéresse peut se faire sur
> une ligne "^Commandline: " contenant " install " et le nom du paquet
> recherché ;
> - l'extraction des données qui nous intéressent peut se faire depuis une
> ligne "^Install: " en supprimant les versions "(.*)" et les séparateurs ",".
>
> Donc ici j'utiliserais une commande de ce genre :
>
>  awk -v p="firefox:i386" 'BEGIN {ok=0} /^Start-Date: /{ok=1} /^End-Date:
> /{ok=0} /^Commandline:.* install /{if(ok==1 && match($0,p)){ok=2}}
> /^Install: /{if(ok==2){l=substr($0,index($0,":")+2); gsub("
> \\([^)]+\\),?","",l); print l; exit} }' /var/log/apt/history.log
>
> J'imagine que quelques explications s'imposent :
> - on fournit le nom du paquet à rechercher comme variable 'p' ;
> - on commence au niveau 0 (rien trouvé) ;
> - on passe au niveau 1 quand on trouve un bloc Start-Date/End-Date ;
> - on passe au niveau 2 quand on trouve une commande d'installation contenant
> le nom de paquet fournit dans 'p' ;
> - quand on arrive sur une ligne "^Install: " au niveau 2, on récupère (dans
> 'l') juste la partie après le ':', on y supprime la mention des versions
> (gsub), puis on affiche le résultat et on s'arrête (exit).
>
>
> J.C.
>
> --
> Jean Christophe ANDRÉ  —  Coordonnateur des infrastructures techniques
> Agence universitaire de la Francophonie (AUF)  —   http://www.auf.org/
> ✉ : AUF | 3034, boul Édouard-Montpetit | Montréal QC  H3T 1J7 | CANADA
> ℡ : +1 514 343 6630 #1568  ✦  ℻ : +1 514 343 2107
> ⎧Note personnelle: merci d'éviter de m'envoyer des fichiers Microsoft⎫
> ⎩Office, cf http://www.gnu.org/philosophy/no-word-attachments>
>
> --
> Ubuntu-quebec mailing list
> Ubuntu-quebec at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-quebec



More information about the Ubuntu-quebec mailing list