Commande awk : alimenter un fichier et afficher son contenu

Commande awk : alimenter un fichier et afficher son contenu - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 23-10-2006 à 19:28:42    

bonjour
Je suis à la recherche d'une commande qui passe par awk , qui crée un fichier et qui sur la meme commande nous affichent ce qu'il y a ds ce fichier.
Voilà le script en question , on suppose que le fichier listuser n'existe pas au moment du lancement de la commande :
 

Citation :


awk -F: '
BEGIN{OFS="\t";somme=0}
             {if ($7=="/bin/bash" )
                   {print "nom du compte",$1, "numero du compte",$3;somme=somme+1}}
END{print "nombre de compte =",somme}' /etc/passwd > listuser | grep nombre listuser


 
Je pensais qu'en faisant ca le grep allait me donnait la ligne ou le mot nombre est affiché mais ca marche pas ; car le je pense qu'au moment de l'execution du grep listuser n'est pas crée.
Si vous avez une idée de la commande à taper à la place du grep , merci d'avance.
 
ps : j'ai aussi essayé avec sed mais ca n'a pas marché :(

Reply

Marsh Posté le 23-10-2006 à 19:28:42   

Reply

Marsh Posté le 24-10-2006 à 09:31:05    

A essayer (je peux pas tester, mais ça devrait fonctionner en corrigeant peut-être un peu) :


awk -F: 'BEGIN { ... }' /etc/passwd | tee listuser | grep nombre


 
la commande tee permet de rediriger (sans supprimer l'affichage, donc pas comme > ) la sortie standard vers un fichier. Ensuite, ton grep peut très bien se passer sur la sortie standard. Ce que tu faisais est un peu étrange car tu fais un | grep alors que tu n'as rien en sortie, mais tu lui donnes quand même un fichier à traiter ...
Le système de pipe permet de capturer la sortie et de la traiter par la commande du pipe, rien d'autre ...
 
edit: je me demande aussi si ta variable somme est bien nécessaire, il me semble que la variable spéciale $. pourrait convenir (à vérifier aussi). Pas besoin de faire de somme ou quoi que ce soit dessus, elle est incrémentée à chaque fois que awk traite une ligne du fichier


Message édité par wedgeant le 24-10-2006 à 09:33:46

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 24-10-2006 à 09:41:24    

ok je te remercie pour tout ces précieux renseignements.
Ca fonctionne !!! ;)
Par contre j'ai pas bien compris le coup de l'increment pour la variable $.
Je croyais que les enregistrements etaient stockés ds une variable $0 mais je vois pas comment l'incrémenter autrement que par une variable somme de chaque ligne.


Message édité par cyberfred le 24-10-2006 à 09:53:28
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed