Compteur de lignes dans un fichier

willy -  
 willy -
Bonjour,

comment compter les lignes d'un fichier bash sans utiliser la commande wc -l? svp il me faut faire un compteur et je coince dessus merci aux pros du bash!
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

Avec :

- sed
- awk
- cat
- nl

?

Ou en bash pur ?

Je suppose qu'un "while read ligne; do..." couplé à un compteur à chaque boucle devrait le faire, non ?

0
willy
 
En fait je l'ai fait avec cette commande NL=$(cat ./data|wc -l); qui marche mais on m'a demandé de le faire sous forme de compteur afin de lui passer un paramètre lors du lancement du script vous voyez un peu?
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Jette un oeil à cette astuce : Comment lire un fichier ligne par ligne

Une fois que tu auras compris le système, il ne te restera plus qu'à rajouter un compteur dans ta boucle et d'afficher le résultat une fois la dernière ligne de lue...
0
willy
 
Merci j'ai finalement pu le réaliser hier à l'aide d'une boucle for et d'une cdtion if çà marche comme je le souhaitais merci d'avoir répondu et de vs être gené pr mon problème.
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Happy for you ;-))

La cerise sûr le gâteau aurait été que tu postes la solution que tu as trouvée afin qu'elle serve à d'autres... ;-(
0
willy
 
Au cas où quelqu'un aimerait l'utiliser voici un ptit script permettant de lire ligne par ligne un fichier. $5:car je mets le nbre de ligne lors du lancement de la commande.

for i in $(seq 1 $5);
do
if [[ ${i} -le $5 ]]; then
NL=$(($NL + 1 ));
fi
done
for ligne in 'cat votre_fichier';
do
somme=$(($somme + $ligne))
moyenne=$(($somme / $NL)) #ici j'utilise mon NL(Nbre de Lignes récupéré ds la boucle)
done
0