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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [RESOLU]Compter le nombre de ligne d'un fichier

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU]Compter le nombre de ligne d'un fichier

n°1277972
yoshi42
Posté le 06-01-2006 à 03:50:12  profilanswer
 

Bonjour,
je cherche une commande permettant de renvoyer le nombre de ligne d'un fichier
Auriez vous une suggestion?  
 
pour l'instant j'utilise un

Code :
  1. cat fichier | while read line
  2. do
  3. #incermentation d'une variable
  4. done


mais je suis sur qu'il existe une commande pour renvoyer directement ça, non?

Message cité 1 fois
Message édité par yoshi42 le 07-01-2006 à 04:29:42
mood
Publicité
Posté le 06-01-2006 à 03:50:12  profilanswer
 

n°1277973
Pillow
'cos the trees won't talk
Posté le 06-01-2006 à 05:03:59  profilanswer
 

Il y a

wc -l fichier

mais ça affiche aussi le nom du fichier. Tu peux utiliser cut pour récupérer le premier champ.
 
 
 
Sinon

sed -n '$=' fichier

ou encore

awk 'END {print NR}' fichier

feront l'affaire.


Message édité par Pillow le 06-01-2006 à 05:08:16
n°1278015
PierreC
Posté le 06-01-2006 à 10:08:58  profilanswer
 

sinon un  
cat fic | wc -l


---------------
Du tofu en Alsace : www.tofuhong.com
n°1278557
Sve@r
Posté le 07-01-2006 à 01:25:17  profilanswer
 

yoshi42 a écrit :

Bonjour,
je cherche une commande permettant de renvoyer le nombre de ligne d'un fichier
Auriez vous une suggestion?  
 
pour l'instant j'utilise un

Code :
  1. cat fichier | while read line
  2. do
  3. #incermentation d'une variable
  4. done


mais je suis sur qu'il existe une commande pour renvoyer directement ça, non?


 
Comme d'autres l'ont dit, wc marche très bien.
 
Je voudrais mettre un bémol sur ta structure parce que ça fonctionne nickel en ksh mais pas en sh ni bash. Pourquoi, j'en sais rien mais il se trouve que, à mon avis, le pipe génère un sous-processus dans lequel ta variable s'incrémente... mais à la fin du done, ben t'as plus de processus donc t'as plus de variable. Pourquoi ça fonctionne en ksh ? j'en sais rien. Mais j'ai déjà testé dans différents shells...
 
Tu peux, pour pallier ce pb, utiliser les parenthèses comme ceci

Code :
  1. cat fichier | ( while read line
  2. do
  3. #incermentation d'une variable
  4. done
  5. echo $variable
  6. )


 
Ou bien ne pas mettre de pipe, comme ceci

Code :
  1. exec 3<fichier
  2. while read line 0<&3
  3. do
  4. #incermentation d'une variable
  5. done
  6. echo $variable


 
 


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1278566
yoshi42
Posté le 07-01-2006 à 04:29:16  profilanswer
 

Merci pour toutes ces infos  :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [RESOLU]Compter le nombre de ligne d'un fichier

 

Sujets relatifs
[Résolu] GET ok sous Firefox mais pas sous IEJSF:créer dynamiquement des tables sans connaitre leur nombre
ActiveX/ Visual Basic [Résolu][résolu] Image de fond sur lien d'un menu "en ligne" ???
[Pb PHP] Telechargement de gros fichierEcrire un nombre arrondi dans un TextBox Excel
Une fonction peut-elle retourner le numéro de la ligne qui l'appelle ?déplacement fichier
[RESOLU]Passer un paramètre avec des espaces 
Plus de sujets relatifs à : [RESOLU]Compter le nombre de ligne d'un fichier


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR