user@linuxtrack:~ $ python -c 'print("Soyez les bienvenus !")'

Vous n'êtes pas identifié(e).

#1 10-01-2015 07:27:32

IceF0x
#! Gourou Linux

[Astuce]Faire un grep sur une ligne contenant un ou plusieurs espaces.

grep ou egrep est une fonction bien pratique dans le terminal, mais il est parfois difficile de l'utiliser.

Par exemple si vous utilisez la commande pour savoir si un argument est présent, mais qu'il est présent 2x et que l'option -e ou egrep ne vous donne pas un résultat précis.

L'astuce consiste à utiliser [[:space:]]*

Exemple avec la commande "dpkg  --get-selections"

La commande suivante retournera par exemple ceci paquet installé ou pas.

dpkg --get-selections guile-1.8-libs
guile-1.8-libs                    deinstall

De même que cette forme-ci

dpkg --get-selections | grep guile-1.8-libs
guile-1.8-libs                    deinstall

Celle-ci par contre vous donnera trop de résultat au lieu de filtrer.

dpkg --get-selections | egrep "guile-1.8-libs|install"
guile-1.8-libs                    deinstall
libyaml-0-2:i386                deinstall
prism2-usb-firmware-installer            install

Alors que celle-ci vous dira exactement la réponse souhaité pour savoir si le paquet est absent ou installé.

Réponse si le paquet n'est pas installé ou désinstallé

dpkg --get-selections | grep "guile-1.8-libs[[:space:]]*install"

Réponse si le paquet est installé

dpkg --get-selections | grep "guile-1.8-libs[[:space:]]*install"
guile-1.8-libs                    install

Voilà qui peut parfois être utile dans un script ou pour faire une vérification dans un fichier.


Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

#2 10-01-2015 10:24:27

penthium2
Modérateur

Re : [Astuce]Faire un grep sur une ligne contenant un ou plusieurs espaces.

dpkg --get-selections | grep 'guile-1.8-libs\s*install'

ca doit marché aussi

Dernière modification par penthium2 (10-01-2015 10:24:49)


vi est mon ami pour la vie
Viperr
Ph'nglui nglw-nafh Cthulhu R'lyeh wgah-nagl fhtagn

Hors ligne

#3 10-01-2015 14:43:11

IceF0x
#! Gourou Linux

Re : [Astuce]Faire un grep sur une ligne contenant un ou plusieurs espaces.

viperr a écrit :
dpkg --get-selections | grep 'guile-1.8-libs\s*install'

ça doit marcher aussi

Je confirme, ça fonctionne aussi, merci pour l'astuce.


Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

Pied de page des forums