Comptage du nombre de lignes lues dans une boucle while

Résolu
sps35 Messages postés 10 Statut Membre -  
sps35 Messages postés 10 Statut Membre -
Bonjour à tous et toutes,

Je souhaite faire une boucle shell afin de lire un fichier.
Cependant, les fichiers que je traitent sont importants, et je souhaiterais mettre en place un témoin qui m'informe de l'avancée de la lecture du fichier.

Ma boucle est simple :

while read Ligne
do
..... ACTION .....
done < fichier.txt > resultat.txt

Cependant, je souhaiterais faire apparaitre dans ma console un témoin du style

Lecture ligne :10000
Lecture ligne : 20000
Lecture ligne : 30000
etc.

donc, à chaque lecture de 10000 lignes et cela au fur et à mesure de la lecture du fichier.

Pouvez - vous m'aider, s'il vous plait ?

Merci d'avance.

3 réponses

zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,

Une façon de faire...

#!/bin/bash

reg="^[1-9][0-9]*0{4,}$"
cpt=1


while read Ligne
do
..... ACTION .....

[[ ${cpt} =~ ${reg} ]] && echo "Lecture ligne ${cpt}"
((cpt++))


done < fichier.txt > resultat.txt

0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
hello
avec modulo
c=1
while read Ligne
do
..... ACTION .....
[[ $((c++ % 10000)) -eq 0 ]] && echo ligne:$c
done < fichier.txt > resultat.txt
0
sps35 Messages postés 10 Statut Membre
 
Bonjour,
Merci Zipe31 et dubcek.
Ca marche ;-) !
0