IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Résultats de awk sur une seule ligne


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 83
    Par défaut Résultats de awk sur une seule ligne
    Bonjour à tous!

    J'essaye de récupérer un fichier de sauvegarde de paquets généré par synaptic pour l'utiliser avec apt-get.

    Le fichier se présente comme cela:

    paquet1 install
    paquet2 uninstall
    ....
    En sachant que j'ai besoin de récupérer les paquets à désinstaller, je fais donc cela pour l'instant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $cat fichier | grep uninstall | awk 'BEGIN {FS=' '}{print $1}
    ce qui me permet d'obtenir une liste:

    paquet1
    paquet2
    etc...
    Comment faire pour afficher ces paquets sur une seule ligne séparés par des virgules?

    Merci d'avance.

  2. #2
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    BEGIN et FS inutiles car le caractère de séparation par défaut est " l'espace "

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $cat fichier | grep uninstall | awk '{ printf("%s,",$1) }'

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 83
    Par défaut
    Super, merci beaucoup.

    Qu'est-ce qui fait que cela s'écrit sur une seule ligne? Le printf ?

    Est-ce que tu pourrais s'il te plait m'expliquer vite fait ce que fait la commande pour que je comprenne un peu ce qui se passe?

    Merci encore!

  4. #4
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    le printf de awk a la même syntaxe que les printf utilisés en shell ou en langage C.

    En awk, l'équivalent de print $0 est printf("%s\n",$0).
    C'est le \n (NewLine) qui fait passer à la ligne suivante.
    printf permet de formater tes lignes de sorties (cf liens ci-dessous)
    http://lea-linux.org/cached/index/Dev-awk.html
    http://www.shellunix.com/awk.html
    http://www.delorie.com/gnu/docs/gawk/gawk_toc.html

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 83
    Par défaut
    Merci beaucoup BlaireauOne !!!

    J'apprends vraiment énormément de choses grâce à développez.com, à ses tutos, et à ses forums, et à sa communauté de geeks patentés. Je vous remercie encore tous pour le travail formidable que vous fournissez

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Regroupement de résultats sur une seul ligne
    Par ximun974 dans le forum Requêtes
    Réponses: 3
    Dernier message: 30/12/2010, 12h55
  2. Plusieurs résultats mis à plat sur une seule ligne.
    Par Laurent.B dans le forum Langage SQL
    Réponses: 7
    Dernier message: 13/10/2009, 11h58
  3. Résultats d'une requête sur une seule ligne
    Par bobic dans le forum Langage SQL
    Réponses: 9
    Dernier message: 20/08/2008, 16h53
  4. Plusieurs résultats sur une seule ligne
    Par Morphorpse dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/08/2007, 19h36
  5. Relation un à n : mettre les résultats sur une seule ligne
    Par juju33 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 13/08/2007, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo