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 :
- cat fichier | while read line
- do
- #incermentation d'une variable
- 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 :
- cat fichier | ( while read line
- do
- #incermentation d'une variable
- done
- echo $variable
- )
|
Ou bien ne pas mettre de pipe, comme ceci
Code :
- exec 3<fichier
- while read line 0<&3
- do
- #incermentation d'une variable
- done
- echo $variable
|
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.