Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1774 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Commande awk : alimenter un fichier et afficher son contenu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Commande awk : alimenter un fichier et afficher son contenu

n°855327
cyberfred
Posté le 23-10-2006 à 19:28:42  profilanswer
 

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é :(

mood
Publicité
Posté le 23-10-2006 à 19:28:42  profilanswer
 

n°855469
wedgeant
Da penguin inside
Posté le 24-10-2006 à 09:31:05  profilanswer
 

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
n°855475
cyberfred
Posté le 24-10-2006 à 09:41:24  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Commande awk : alimenter un fichier et afficher son contenu

 

Sujets relatifs
Lancer un commande au démarrageRemplacer un texte dans fichier avec sed ou perl
Linux : afficher liste des utilisateurs et des groupesPing --> commande not fount ?!!??
[SH] traiter un nom de fichier qui contient un espacerécu. Commande time dans fic. de log
[script] Afficher une lignefonction du gestionnaire de fichier
problème transfert de fichier [ubuntu]Script et fichier
Plus de sujets relatifs à : Commande awk : alimenter un fichier et afficher son contenu


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR