Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications > Shell

Shell Vos questions sur l'utilisation des commandes shell

Réponse
 
Outils de la discussion
Vieux 09/07/2008, 18h22   #1 (permalink)
Nouveau membre du Club
 
Date d'inscription: octobre 2006
Messages: 54
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:

Citation:
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 :
$cat fichier | grep uninstall | awk 'BEGIN {FS=' '}{print $1}
ce qui me permet d'obtenir une liste:

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

Merci d'avance.

Dernière modification par julp ; 09/07/2008 à 22h12 Motif: Utilisez le bouton Résolu en bas ...
d10g3n est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/07/2008, 18h49   #2 (permalink)
Membre éprouvé
 
Avatar de BlaireauOne
 
Date d'inscription: mars 2007
Localisation: Toulouse
Messages: 471
Par défaut

BEGIN et FS inutiles car le caractère de séparation par défaut est " l'espace "

Code :
$cat fichier | grep uninstall | awk '{ printf("%s,",$1) }'
__________________
Loi de Murphy:
La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/07/2008, 19h20   #3 (permalink)
Nouveau membre du Club
 
Date d'inscription: octobre 2006
Messages: 54
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!
d10g3n est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/07/2008, 19h37   #4 (permalink)
Membre éprouvé
 
Avatar de BlaireauOne
 
Date d'inscription: mars 2007
Localisation: Toulouse
Messages: 471
Par défaut

Citation:
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
__________________
Loi de Murphy:
La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/07/2008, 21h05   #5 (permalink)
Nouveau membre du Club
 
Date d'inscription: octobre 2006
Messages: 54
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
d10g3n est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications > Shell



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 17h29.