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

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    avec modulo
    c=1
    while read Ligne
    do
    ..... ACTION .....
    [[ $((c++ % 10000)) -eq 0 ]] && echo ligne:$c
    done < fichier.txt > resultat.txt
    0
  3. sps35 Messages postés 10 Statut Membre
     
    Bonjour,
    Merci Zipe31 et dubcek.
    Ca marche ;-) !
    0