Comptage du nombre de lignes lues dans une boucle while

Résolu/Fermé
sps35 Messages postés 8 Date d'inscription vendredi 26 septembre 2014 Statut Membre Dernière intervention 22 janvier 2016 - 26 sept. 2014 à 12:51
sps35 Messages postés 8 Date d'inscription vendredi 26 septembre 2014 Statut Membre Dernière intervention 22 janvier 2016 - 29 sept. 2014 à 14:08
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.
A voir également:

3 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 422
26 sept. 2014 à 14:09
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 18764 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 9 février 2025 5 623
26 sept. 2014 à 15:30
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 8 Date d'inscription vendredi 26 septembre 2014 Statut Membre Dernière intervention 22 janvier 2016
29 sept. 2014 à 14:08
Bonjour,
Merci Zipe31 et dubcek.
Ca marche ;-) !
0