Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 16/10/2020, à 18:58

philoeil

Re : [RESOLU] Comment améliorer cette barre de progression

Bonjour,
La "progression affichée" selon le message d'Hizoka m'irait mais j'ai du mal à l'intégrer dns mon script
L'étape de ma ligne find peut sans doute être convertie remplacée par la ligne regroupant les fichiers avec mapfile+find  dans la variable Fichiers
puis par la boucle for mesurer la progression et envoyer le résultat attendu
 
Je sollicite de l'aide, je vais peut-être y arriver tout seul mais cela va être long (je cours après le temps) , je vous donne le problème ci-dessous si vous savez m'aider je remercie toutes les bonne volontés :

Le script (test) en cours :

#!/bin/bash
# paramètres du programme remplacés par des paramètres tests
REP="/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/"
TailleMo=0
CheminActionDbl="/home/phil/Documents/JeCodeShell/BarreProgress/CheminResultat"
FILE2="Resultat.txt"

# initialement la ligne find sans barre de progression
find "$REP" -name "[^.]*" -type f -size +"$TailleMo"M -printf "%h*%f*%s*%c* dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*" -exec /usr/bin/md5sum -b {} \; | sort -n -t "*" -k 6| awk -F"*" '{ TMo=$3/1048576; printf $1" § "$2 " § " TMo " § " $4 " § " $5 " § " $6 "\n"; }' | tee -a "$CheminActionDbl/$FILE2"

# ci-dessous construction du resultat en cours qui se voudrait identique (à la ligne find précédente) avec une barre de progression :
mapfile -d '' -t Fichiers < <(find "$REP" -name "[^.]*" -type f -print0)
TailleTotale=$(du -c "$REP" | sed -n '/total/ s/[[:space:]].*//p')
TailleOK=0

for Fichier in "${Fichiers[@]}"
do
#  TailleOK+=$(du "${Fichier}" | sed 's/[[:space:]].*//')
 Taille=$(du "${Fichiers}" | sed 's/[[:space:]].*//')
TailleOK=$((TailleOK + Taille))

/usr/bin/md5sum -b "${Fichier}"
echo -en "\rProgression : ${TailleOK} / ${TailleTotale} "
done

Le resultat à ce stade

$ ./BarreZak4.sh 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori1Cpie2et3 § FOri2_FichTexte1_cpie.txt § 0.00575733 § Thu Oct 15 17:33:44.7003564010 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0270514010 § 0cbbff1c0f1c5bdc5ce8e2b8f483e560 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1 § FOri2.1_F07 Fichier avec espaces.mp3 § 6.53249 § Thu Oct 15 17:33:44.8603592880 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0590520120 § d3fad710647642c327aceeec1b773a71 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1 § FORi2_Fichiertxt2.txt § 1.62125e-05 § Thu Oct 15 17:33:44.7283569070 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0550519360 § aa0fe6e3a24fdbb81d9c78b03c20f152 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1 § FOri2_FichierTxt3.txt § 1.62125e-05 § Thu Oct 15 17:33:44.7203567620 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0550519360 § f6638c0e380e1a9a89b026c2f33600f9 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1 § FOri2_FichTexte1.txt § 0.00575733 § Thu Oct 15 17:33:45.8483770190 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.1550538460 § 0cbbff1c0f1c5bdc5ce8e2b8f483e560 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori3Cpie1 § Ori3_Txt3.txt § 9.53674e-06 § Thu Oct 15 17:33:45.8603772350 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0510518590 § c456767671367191db9690fd3b78d396 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori1Cpie2et3 § Ori1_Txt3.txt § 9.53674e-06 § Thu Oct 15 17:33:44.7123566180 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0350515540 § 5f23e93ab5621913919e1fce7334a945 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori3Cpie1 § Ori1_Txt3_cpie.txt § 9.53674e-06 § Thu Oct 15 17:33:45.8523770910 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0470517830 § 5f23e93ab5621913919e1fce7334a945 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori3Cpie1 § Ori3_Txt2.txt § 9.53674e-06 § Thu Oct 15 17:33:45.8603772350 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0510518590 § 5da93f8df31f3c8446abd9a05599bfe5 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1 § FOrig2.1 CpBBID2_EspaceApresNef.nef  § 26.1399 § Thu Oct 15 17:33:45.5403714960 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0750523180 § 10a6ada757ec577d3a3db0654dd60a45 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori1Cpie2et3 § Ori1_Txt2.txt § 1.04904e-05 § Thu Oct 15 17:33:44.7083565460 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0310514770 § 24add2d0aab64565d873c2587e2e04a3 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1 § Ori1_Txt2_cpie.txt § 1.04904e-05 § Thu Oct 15 17:33:45.5523717120 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.1270533110 § 24add2d0aab64565d873c2587e2e04a3 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori1Cpie2et3 § Ori3_Txt1_cpie § 9.53674e-06 § Thu Oct 15 17:33:44.6803560400 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0230513250 § 470d6bd60f4fdf9316fff259525bfdfe 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori3Cpie1 § Ori3_Txt1 § 9.53674e-06 § Thu Oct 15 17:33:45.8523770910 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0430517070 § 470d6bd60f4fdf9316fff259525bfdfe 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori1Cpie2et3 § Ori1_Txt1.txt § 9.53674e-06 § Thu Oct 15 17:33:44.7123566180 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0390516300 § 22856cac10444acad15dc0646b48f820 
/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1 § FOri2.1BBID1_1 espaceApresJpg.jpg  § 13.1206 § Thu Oct 15 17:33:45.8163764450 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.1310533880 § 93243bbb48aa8de88968bee06e6c8c9b 
470d6bd60f4fdf9316fff259525bfdfe */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori1Cpie2et3/Ori3_Txt1_cpie
Progression : 4 / 46972 0cbbff1c0f1c5bdc5ce8e2b8f483e560 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori1Cpie2et3/FOri2_FichTexte1_cpie.txt
Progression : 8 / 46972 24add2d0aab64565d873c2587e2e04a3 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori1Cpie2et3/Ori1_Txt2.txt
Progression : 12 / 46972 5f23e93ab5621913919e1fce7334a945 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori1Cpie2et3/Ori1_Txt3.txt
Progression : 16 / 46972 22856cac10444acad15dc0646b48f820 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori1Cpie2et3/Ori1_Txt1.txt
Progression : 20 / 46972 470d6bd60f4fdf9316fff259525bfdfe */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori3Cpie1/Ori3_Txt1
Progression : 24 / 46972 5f23e93ab5621913919e1fce7334a945 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori3Cpie1/Ori1_Txt3_cpie.txt
Progression : 28 / 46972 c456767671367191db9690fd3b78d396 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori3Cpie1/Ori3_Txt3.txt
Progression : 32 / 46972 5da93f8df31f3c8446abd9a05599bfe5 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori3Cpie1/Ori3_Txt2.txt
Progression : 36 / 46972 f6638c0e380e1a9a89b026c2f33600f9 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1/FOri2_FichierTxt3.txt
Progression : 40 / 46972 aa0fe6e3a24fdbb81d9c78b03c20f152 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1/FORi2_Fichiertxt2.txt
Progression : 44 / 46972 d3fad710647642c327aceeec1b773a71 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1/FOri2.1_F07 Fichier avec espaces.mp3
Progression : 48 / 46972 10a6ada757ec577d3a3db0654dd60a45 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1/FOrig2.1 CpBBID2_EspaceApresNef.nef 
Progression : 52 / 46972 24add2d0aab64565d873c2587e2e04a3 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1/Ori1_Txt2_cpie.txt
Progression : 56 / 46972 93243bbb48aa8de88968bee06e6c8c9b */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1/FOri2.1BBID1_1 espaceApresJpg.jpg 
Progression : 60 / 46972 0cbbff1c0f1c5bdc5ce8e2b8f483e560 */home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori2Cpie1/FOri2_FichTexte1.txt

Les problèmes qu'il me faut résoudre à ce stade :
1) TailleOk n'affiche pas la bone taille pourquoi ? exemple (affiche 56 au lieu de 13436):

$ du FOri2.1BBID1_1\ espaceApresJpg.jpg\  
13436	FOri2.1BBID1_1 espaceApresJpg.jpg 

2) il me faut revoir l'ordre et comment retrouver tous les éléments que je dois avoir pour la suite de mon script
Le resultat attendu  à récuperer dans "$CheminActionDbl/$FILE2" pour chaque fichier :

/home/phil/Documents/JeCodeShell/BarreProgress/Racine_EssaiBarre/Ori1Cpie2et3 § Ori1_Txt1.txt § 9.53674e-06 § Thu Oct 15 17:33:44.7123566180 2020 §  dernier accès le vendredi 16 octobre 2020 à 17:49:57.0390516300 § 22856cac10444acad15dc0646b48f820 

Hors ligne

#27 Le 16/10/2020, à 22:47

kamaris

Re : [RESOLU] Comment améliorer cette barre de progression

philoeil a écrit :

1) TailleOk n'affiche pas la bone taille pourquoi ?

Ça doit être à cause du s à la fin de Fichiers, ça doit plutôt être :

Taille=$(du "${Fichier}" | sed 's/[[:space:]].*//')

Hors ligne

#28 Le 17/10/2020, à 12:42

philoeil

Re : [RESOLU] Comment améliorer cette barre de progression

Bonjour,

Merci Kamaris c'était bien le s
Merci

Hors ligne

#29 Le 18/10/2020, à 08:54

philoeil

Re : [RESOLU] Comment améliorer cette barre de progression

Bonjour,
Je reviens vers vous car je suis bloqué :
1) Je ne trouve pas d'info sur mapfile option -d
je n'ai pas d'info pour man mapfile

2) Ce que j'essaie de faire :

    Envoyer les resultats de la partie Find dans une variableTableau (separateur de champs = "*")
    Faire une boucle for do done pour chaque nom de fichier
        Ajouter à la variableNomFichier de la variable tableau le calcul MD5sum pour chaque fichier

La partie find en question :

#  paramètres tests
REP="/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/"
TailleMo=0
find "$REP" -name "[^.]*" -type f -size +"$TailleMo"M -printf "%h*%f*%s*%c*dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*\n" 

Merci à tous

Hors ligne

#30 Le 18/10/2020, à 11:35

kamaris

Re : [RESOLU] Comment améliorer cette barre de progression

Si tu veux séparer les lignes et les champs, en préservant cette distinction au-delà de la séparation, tu ne peux pas te contenter d'utiliser un tableau.
Tu peux faire ça :

while IFS='*' read -r fichier reste; do
  traitement_sur_fichier "$fichier"
  traitement_sur_reste "$reste"
done < <(find "$REP" -name "[^.]*" -type f -size +"$TailleMo"M -printf "%h*%f*%s*%c*dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*\n")

Sinon pour la documentation sur mapfile, c'est help mapfile ou dans man bash, car c'est une commande interne à bash.

Hors ligne

#31 Le 18/10/2020, à 12:52

philoeil

Re : [RESOLU] Comment améliorer cette barre de progression

Bonjour,
Merci Kamaris

J'ai un message d'erreur

#!/bin/bash
# paramètres du programme remplacés par des paramètres tests
REP="/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/"
TailleMo=0
CheminActionDbl="/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/CheminResultat"

FILE2="Resultat.txt"
# effacer Resultat.txt
truncate -s 0 $CheminActionDbl/$FILE2

while IFS='*' read -r Fichiers Restes; do
#  traitement_sur_fichier "$fichier"
#  traitement_sur_reste "$reste"
done < <(find "$REP" -name "[^.]*" -type f -size +"$TailleMo"M -printf "%h*%f*%s*%c*dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*\n")

# TailleTotale=$(du -c "$REP" | sed -n '/total/ s/[[:space:]].*//p')
# TailleOK=0

for Fichier in "${Fichiers[@]}"
do
for Reste in "${Restes}"
do
#  TailleOK+=$(du "${Fichier}" | sed 's/[[:space:]].*//')
# Taille=$(du "${Fichier}" | sed 's/[[:space:]].*//')
# TailleOK=$((TailleOK + Taille))
# NomFichier

# /usr/bin/md5sum -b "${Fichier} 

 echo ' test affichage des éléments :'
 echo -n "${Fichiers[Fichier]}"
echo -n "${Restes[Reste]}"
# echo -n  -en "\rProgression : ${TailleOK} / ${TailleTotale} 
done
done
$ ./TestMapfile1.sh 
./TestMapfile1.sh: ligne 14: erreur de syntaxe près du symbole inattendu « done »
./TestMapfile1.sh: ligne 14: `done < <(find "$REP" -name "[^.]*" -type f -size +"$TailleMo"M -printf "%h*%f*%s*%c*dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*\n")'

Pourquoi ?

Hors ligne

#32 Le 18/10/2020, à 14:23

kamaris

Re : [RESOLU] Comment améliorer cette barre de progression

Mais non, fichier et reste (que je n'ai pas mis au singulier par hasard) contiennent respectivement le nom de fichier d'une ligne et le reste d'une ligne de la sortie de find.
Cette syntaxe remplace l'utilisation d'un tableau, et les traitements sont à réaliser dans la boucle while, comme je l'ai indiqué par

  traitement_sur_fichier "$fichier"
  traitement_sur_reste "$reste"

Regarde ce qu'affiche par exemple

while IFS='*' read -r fichier reste; do
  echo "$fichier" "$(md5sum -b "$fichier")" "$reste"
done < <(find "$REP" -name "[^.]*" -type f -size +"$TailleMo"M -printf "%h*%f*%s*%c*dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*\n")

Hors ligne

#33 Le 18/10/2020, à 16:30

philoeil

Re : [RESOLU] Comment améliorer cette barre de progression

Bonjour,
Ah ! ça sent bon la résolution ! lol
J'ai un peu ajusté mais c'est bon j'ai compris!
Le script ajusté :

#!/bin/bash
# paramètres du programme remplacés par des paramètres tests
REP="/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/"
TailleMo=0
CheminActionDbl="/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/CheminResultat"

FILE2="Resultat.txt"
# effacer Resultat.txt
truncate -s 0 $CheminActionDbl/$FILE2

while IFS='*' read -r dossier fichier reste; do
  echo "$fichier" "$(md5sum -b "$dossier/$fichier")" "$reste"


done < <(find "$REP" -name "[^.]*" -type f -size +"$TailleMo"M -printf "%h*%f*%s*%c*dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*\n")

Le resultat

$ ./TestMapFile2.sh 
Ori3_Txt1 470d6bd60f4fdf9316fff259525bfdfe */home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1/Ori3_Txt1 10*Sun Oct 18 09:33:08.3073169100 2020*dernier accès le dimanche 18 octobre 2020 à 09:33:14.7393124240*
Ori1_Txt3_cpie.txt 5f23e93ab5621913919e1fce7334a945 */home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1/Ori1_Txt3_cpie.txt 10*Sun Oct 18 09:33:08.3073169100 2020*dernier accès le samedi 17 octobre 2020 à 18:52:35.0000000000*
Ori3_Txt3.txt c456767671367191db9690fd3b78d396 */home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1/Ori3_Txt3.txt 10*Sun Oct 18 09:33:08.3073169100 2020*dernier accès le samedi 17 octobre 2020 à 18:52:35.0000000000*
Ori3_Txt2.txt 5da93f8df31f3c8446abd9a05599bfe5 */home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1/Ori3_Txt2.txt 10*Sun Oct 18 09:33:08.3073169100 2020*dernier accès le samedi 17 octobre 2020 à 18:52:35.0000000000*
FORi2_Fichiertxt2.txt aa0fe6e3a24fdbb81d9c78b03c20f152 */home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1/FORi2_Fichiertxt2.txt 17*Sun Oct 18 09:33:08.2633169410 2020*dernier accès le samedi 17 octobre 2020 à 18:52:35.0000000000*
FOri2.1_F07 Fichier avec espaces.mp3 d3fad710647642c327aceeec1b773a71 */home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1/FOri2.1_F07 Fichier avec espaces.mp3 6849810*Sun Oct 18 09:33:08.2673169380 2020*dernier accès le samedi 17 octobre 2020 à 18:52:35.0000000000*
FOrig2.1 CpBBID2_EspaceApresNef.nef  10a6ada757ec577d3a3db0654dd60a45 */home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1/FOrig2.1 CpBBID2_EspaceApresNef.nef  27409633*Sun Oct 18 09:33:08.2953169190 2020*dernier accès le dimanche 18 octobre 2020 à 09:33:11.9153143940*
Ori1_Txt2_cpie.txt 24add2d0aab64565d873c2587e2e04a3 */home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1/Ori1_Txt2_cpie.txt 11*Sun Oct 18 09:33:08.2953169190 2020*dernier accès le samedi 17 octobre 2020 à 18:52:35.0000000000*
FOri2.1BBID1_1 espaceApresJpg.jpg  93243bbb48aa8de88968bee06e6c8c9b */home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1/FOri2.1BBID1_1 espaceApresJpg.jpg  13757937*Sun Oct 18 09:33:08.3033169130 2020*dernier accès le dimanche 18 octobre 2020 à 09:33:11.9153143940*

Je vais travailler sur la barre maintenant et je reviens donner le resultat si tout va bien

Hors ligne

#34 Le 20/10/2020, à 21:41

philoeil

Re : [RESOLU] Comment améliorer cette barre de progression

Bonjour,
Eh ben non, quelle galère!
Je n'arrive pas à traiter correctement ce tableau de variable, je ne comprends pas la lecture des champs des lignes du tableauVariables

${Fichiers[*]}

Comment parcourir lire les lignes de mon tableau variables ?
J'ai tenté 2 methodes de remplissage tableauVariables qui semblent donner un resultat similaire mais la lecture me pose problème

Un script qui échoue

 #!/bin/bash
# paramètres du programme remplacés par des paramètres tests
REP="/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/"
TailleMo=0
CheminActionDbl="/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/CheminResultat"

FILE2="Resultat.txt"
# effacer Resultat.txt
truncate -s 0 $CheminActionDbl/$FILE2
# passage des resltats de find dans tableau
# essai methode 1 remplissage varTableau avec while find
#while IFS='*' read -r dossier fichier reste; do
 #  Fichiers+=($dossier $fichier $reste)
#done < <(find "$REP" -not -path '*/\.*' -type f -size +"$TailleMo"M -printf "%h*%f*%s %c dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*\n")

# essai methode 2 remplissage varTableau avec Mapfile
mapfile -d '' -t Fichiers < <(find "$REP" -not -path '*/\.*' -type f -size +"$TailleMo"M -printf "%h*%f*%s %c dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*\n")



#  echo "$fichier" "$(md5sum -b "$dossier/$fichier")" "$reste"
# TailleTotale=$(du -c "$REP" | sed -n '/total/ s/[[:space:]].*//p')
# TailleOK=0

for Fic in "${Fichiers[*]}"
  do
    echo "${Fic[0]}"
    echo "$Fic[1]}"
    echo "
    fin ====================
    "
# Ajout du calcul md5sum

# concatenation de "$(md5sum -b "$dossier/$fichier")"


# Expression de la progression en taille
# Taille=$(du "${Fic}" | sed 's/[[:space:]].*//')
#TailleOK=$((TailleOK + Taille))

  done

Resultat methode 1

$ $ ./TestMapFile3.sh 
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1 Ori3_Txt1 10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8931246890 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1 Ori1_Txt3_cpie.txt 10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8931246890 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1 Ori3_Txt3.txt 10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8931246890 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1 Ori3_Txt2.txt 10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8971247120 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1 FORi2_Fichiertxt2.txt 17 Sun Oct 18 09:33:08.2633169410 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8971247120 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1 FOri2.1_F07 Fichier avec espaces.mp3 6849810 Sun Oct 18 09:33:08.2673169380 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.9131248060 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1 FOrig2.1 CpBBID2_EspaceApresNef.nef 27409633 Sun Oct 18 09:33:08.2953169190 2020 dernier accès le mardi 20 octobre 2020 à 17:15:33.0451255790 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1 Ori1_Txt2_cpie.txt 11 Sun Oct 18 09:33:08.2953169190 2020 dernier accès le mardi 20 octobre 2020 à 17:15:33.4331278420 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1 FOri2.1BBID1_1 espaceApresJpg.jpg 13757937 Sun Oct 18 09:33:08.3033169130 2020 dernier accès le mardi 20 octobre 2020 à 17:15:33.4411278890
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1 Ori3_Txt1 10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8931246890 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1 Ori1_Txt3_cpie.txt 10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8931246890 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1 Ori3_Txt3.txt 10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8931246890 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1 Ori3_Txt2.txt 10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8971247120 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1 FORi2_Fichiertxt2.txt 17 Sun Oct 18 09:33:08.2633169410 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8971247120 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1 FOri2.1_F07 Fichier avec espaces.mp3 6849810 Sun Oct 18 09:33:08.2673169380 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.9131248060 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1 FOrig2.1 CpBBID2_EspaceApresNef.nef 27409633 Sun Oct 18 09:33:08.2953169190 2020 dernier accès le mardi 20 octobre 2020 à 17:15:33.0451255790 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1 Ori1_Txt2_cpie.txt 11 Sun Oct 18 09:33:08.2953169190 2020 dernier accès le mardi 20 octobre 2020 à 17:15:33.4331278420 /home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1 FOri2.1BBID1_1 espaceApresJpg.jpg 13757937 Sun Oct 18 09:33:08.3033169130 2020 dernier accès le mardi 20 octobre 2020 à 17:15:33.4411278890[1]}

    fin ====================

Resultat methode 2

$ ./TestMapFile3.sh 
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1*Ori3_Txt1*10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8931246890*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1*Ori1_Txt3_cpie.txt*10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8931246890*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1*Ori3_Txt3.txt*10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8931246890*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1*Ori3_Txt2.txt*10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8971247120*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1*FORi2_Fichiertxt2.txt*17 Sun Oct 18 09:33:08.2633169410 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8971247120*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1*FOri2.1_F07 Fichier avec espaces.mp3*6849810 Sun Oct 18 09:33:08.2673169380 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.9131248060*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1*FOrig2.1 CpBBID2_EspaceApresNef.nef *27409633 Sun Oct 18 09:33:08.2953169190 2020 dernier accès le mardi 20 octobre 2020 à 17:15:33.0451255790*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1*Ori1_Txt2_cpie.txt*11 Sun Oct 18 09:33:08.2953169190 2020 dernier accès le mardi 20 octobre 2020 à 17:15:33.4331278420*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1*FOri2.1BBID1_1 espaceApresJpg.jpg *13757937 Sun Oct 18 09:33:08.3033169130 2020 dernier accès le mardi 20 octobre 2020 à 17:15:33.4411278890*

/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1*Ori3_Txt1*10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8931246890*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1*Ori1_Txt3_cpie.txt*10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8931246890*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1*Ori3_Txt3.txt*10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8931246890*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori3Cpie1*Ori3_Txt2.txt*10 Sun Oct 18 09:33:08.3073169100 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8971247120*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1*FORi2_Fichiertxt2.txt*17 Sun Oct 18 09:33:08.2633169410 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.8971247120*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1*FOri2.1_F07 Fichier avec espaces.mp3*6849810 Sun Oct 18 09:33:08.2673169380 2020 dernier accès le mardi 20 octobre 2020 à 17:15:32.9131248060*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1*FOrig2.1 CpBBID2_EspaceApresNef.nef *27409633 Sun Oct 18 09:33:08.2953169190 2020 dernier accès le mardi 20 octobre 2020 à 17:15:33.0451255790*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1*Ori1_Txt2_cpie.txt*11 Sun Oct 18 09:33:08.2953169190 2020 dernier accès le mardi 20 octobre 2020 à 17:15:33.4331278420*
/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/Ori2Cpie1*FOri2.1BBID1_1 espaceApresJpg.jpg *13757937 Sun Oct 18 09:33:08.3033169130 2020 dernier accès le mardi 20 octobre 2020 à 17:15:33.4411278890*
[1]}

    fin ====================

Merci pour votre patience et indulgence.

Hors ligne

#35 Le 20/10/2020, à 22:18

Hizoka

Re : [RESOLU] Comment améliorer cette barre de progression

Un peu de lecture ne te ferait pas de mal je pense : https://tldp.org/LDP/abs/html/abs-guide.html

var=(oui non caca)
for x in "${var[*]}"
do
  echo "x : $x"
done

=> x : oui non caca

for x in "${var[@]}"
do
  echo "x : $x"
done

=> x : oui
=> x : non
=> x : caca

Donc ta boucle ne peut pas fonctionner avec *

Dernière modification par Hizoka (Le 20/10/2020, à 22:19)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#36 Le 21/10/2020, à 07:30

philoeil

Re : [RESOLU] Comment améliorer cette barre de progression

Bonjour,
Merci Hizoka pour le lien
J'ai effectivement beaucoup à apprendre...

Mon problème a-t-il une solution

Peut-on lire, retrouver, envoyer dans une variable, uniquement le premier champs de chaque ligne ?

Merci

Hors ligne

#37 Le 21/10/2020, à 08:19

Hizoka

Re : [RESOLU] Comment améliorer cette barre de progression

Je te déconseille d'utiliser * comme séparateur.
Utilise le caractère \0 ou -print0 si tu utilises le -d '' de mapfile et évite d'utiliser le saut de ligne car ça peut planter si ton nom de fichier en comporte un.

mapfile -d '' -t Fichiers < <(find "$REP" -not -path '*/\.*' -type f -size +"$TailleMo"M -printf "%h@%f@%s %c dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS\0")
for Fichier in "${Fichiers[@]}"
do
  h="${Fichier%%@*}"
  f="${Fichier%@*}"
  f="${f#*@}"
  reste="${Fichier##*@}"
  echo "Fichier : ${Fichier}"
  echo "%h : ${h}"
  echo "%f : ${f}"
  echo "reste : ${reste}"
done

KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#38 Le 22/10/2020, à 21:09

kamaris

Re : [RESOLU] Comment améliorer cette barre de progression

philoeil a écrit :

Peut-on lire, retrouver, envoyer dans une variable, uniquement le premier champs de chaque ligne ?

C'est ce que fait la boucle while que je t'ai donnée en #30 :

while IFS='*' read -r fichier reste; do
  traitement_sur_fichier "$fichier"
  traitement_sur_reste "$reste"
done < <(find "$REP" -name "[^.]*" -type f -size +"$TailleMo"M -printf "%h*%f*%s*%c*dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*\n")

Le premier champ de chaque ligne se trouve dans la variable fichier, le reste dans la variable… reste wink

Tu semblais avoir compris en #33…

Hors ligne

#39 Le 05/11/2020, à 19:14

philoeil

Re : [RESOLU] Comment améliorer cette barre de progression

Bonjour,
Je remercie Hizoka et Kamaris pour leurs aides

Pour terminer le retour promis :

J'ai lu et essayé de comprendre au mieux les éléments pour les mettre en oeuvre dans la barre de progression.
Ci-dessous le test avec le code commenté (au mieux de ce que j'ai compris)
J'avoue être bluffé sur la manière d'Hizoka de traiter une suite de caractère pour traiter cette variable comme un tableau de champs, c'est intellectuellement grisant, je ne connaissait pas du tout il m'a fallu un moment pour m'y retrouver
Je conseille les lectures de
http://mywiki.wooledge.org/BashGuide/Arrays#Using_Arrays
http://ti1.free.fr/index.php/bash-les-tableaux/#title-4-3

J'ai rajouté une mesure du temps pass pour mesurer l'écart de performance avec ou sans compteur
Malheureusement cela ralentit pas mal le processus,

Le code test conforme à mes attentes

#!/bin/bash
# paramètres du programme remplacés par des paramètres tests
#REP="/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/"
REP="/home/phil/Documents/JeCodeShell/"

TailleMo=0
CheminActionDbl="/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/CheminResultat"

FILE2="Resultat.txt"
FILE3="FicResult.txt"
# effacer Fichiers Resultats
truncate -s 0 $CheminActionDbl/$FILE2
truncate -s 0 $CheminActionDbl/$FILE3
  
 # Ajout d'une mesure du temps
         select itemAct in "-Lancer directement" "- Lancer avec compteur "
do
echo "Le choix fait $REPLY:$itemAct"
# pour tester la variable de type entier :
if let $REPLY 2>/dev/null
then
   echo "choix conforme $itemAct "


case "$REPLY" in
   1)
    LaDATE='/bin/date'
BEFORE=$($LaDATE +'%s')
echo $BEFORE
  
echo "choix 1"
find "$REP" -not -path '*/\.*' -type f -size +"$TailleMo"M -printf "%h*%f*%s*%c* dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*" -exec /usr/bin/md5sum -b {} \; | sort -n -t "*" -k 6| awk -F"*" '{ TMo=$3/1048576; printf $1" § "$2 " § " TMo " § " $4 " § " $5 " § " $6 "\n"; }' >> "$CheminActionDbl/$FILE2"
cat "$CheminActionDbl/$FILE2"
      ;;
   2)
LaDATE='/bin/date'
BEFORE=$($LaDATE +'%s')
echo $BEFORE

echo "choix2"
echo "
============================================================================
3eMethode Hizoka post 37"

TailleTotale=$(du -c "$REP" | sed -n '/total/ s/[[:space:]].*//p')
TailleOK=0
# La ligne suivante affiche dans la variable tableau Fichiers les différents champs avec un séparateur=@ entre chemin et nom fichier et un séparateur espace entre les autres info utilise \0 pour caractere de fin de ligne
#avec -t  ajoute également silencieusement une nouvelle ligne finale manquante si le flux d'entrée n'en a pas
#l' option -d pour fournir un délimiteur de ligne différent.
mapfile -d '' -t Fichiers < <(find "$REP" -not -path '*/\.*' -type f -size +"$TailleMo"M -printf "%h@%f@%s*%c* dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*\0")
for Fichier in "${Fichiers[@]}"
do
   # ${paramètre%%mot} suppression d'un motif correspondant au suffixe (ici mot= @*) Sur un tableau, tous ses éléments sont transformés 
# %enlève le plus court motif, et %% le plus long 
  h="${Fichier%%@*}"
  f="${Fichier%@*}"
# ${paramètre##mot} suppression d'un motif correspondant au préfixe (ici mot=*@) Sur un tableau, tous ses éléments sont transformés 
# #enlève le plus court motif,
  f="${f#*@}"
# et ## enlève le plus long 

  reste="${Fichier##*@}"
 # echo "Fichier : ${Fichier}"
 # echo "%h : ${h}"
 # echo "%f : ${f}"
 # echo "reste : ${reste}"
Taille=$(du "${h}/${f}" | sed 's/[[:space:]].*//')
TailleOK=$((TailleOK + Taille))
# echo -en "\r... affiche l'incrémentation du compteur sur place
echo -en "\rProgression : ${TailleOK} / ${TailleTotale}"
# reconstruction de la ligne résutat initiale suivante
# find "$REP" -not -path '*/\.*' -type f -size +"$TailleMo"M -printf "%h*%f*%s*%c* dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*" -exec /usr/bin/md5sum -b {} \; | sort -n -t "*" -k 6| awk -F"*" '{ TMo=$3/1048576; printf $1" § "$2 " § " TMo " § " $4 " § " $5 " § " $6 "\n"; }' | tee -a "$CheminActionDbl/$FILE2"

#/usr/bin/md5sum -b "${h}/${f}" 
result=$(/usr/bin/md5sum -b "${h}/${f}")
#echo '$result='"$result"
result2=$(echo $result | cut -d '*' -f 1)
#echo '$result2='"$result2"
#echo "$h*$f*${reste}$result2" 2>&1 | sort -n -t "*" -k 6| awk -F"*" '{ TMo=$3/1048576; printf $1" § "$2 " § " TMo " § " $4 " § " $5 " § " $6 "\n"; }' | tee -a $CheminActionDbl/$FILE3
echo "$h*$f*${reste}$result2" 2>&1 | sort -n -t "*" -k 6| awk -F"*" '{ TMo=$3/1048576; printf $1" § "$2 " § " TMo " § " $4 " § " $5 " § " $6 "\n"; }' >> $CheminActionDbl/$FILE3


done
echo "
"
cat "$CheminActionDbl/$FILE3"
;;
*)
echo "mauvais choix"
   ;;
   esac
else
    echo "Entrée erronée ! variable non numérique"
fi

# Compute and display the elapsed time
AFTER=$($LaDATE +'%s')
echo "
$AFTER"
ELAPSED=$(($AFTER - $BEFORE))
echo "Temps écoulé =$ELAPSED"

done

Hors ligne

#40 Le 05/11/2020, à 22:46

Hizoka

Re : [RESOLU] Comment améliorer cette barre de progression

Il doit y avoir un bug avec ton code, des que je veux le faire défiler, il disparaît.

Mais oui, ça a tendance à ralentir le process.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#41 Le 07/11/2020, à 06:30

philoeil

Re : [RESOLU] Comment améliorer cette barre de progression

Bonjour,

Hizoka a écrit :

Il doit y avoir un bug avec ton code, des que je veux le faire défiler, il disparaît.

Je ne sais pas, chez moi l'affichage de la fenêtre code est normal, je tente un second affichage

#!/bin/bash
# paramètres du programme remplacés par des paramètres tests
#REP="/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/Racine_Petit/"
REP="/home/phil/Documents/JeCodeShell/"

TailleMo=0
CheminActionDbl="/home/phil/Documents/JeCodeShell/testProgress/BarreProgress/CheminResultat"

FILE2="Resultat.txt"
FILE3="FicResult.txt"
# effacer Fichiers Resultats
truncate -s 0 $CheminActionDbl/$FILE2
truncate -s 0 $CheminActionDbl/$FILE3
  
 # Ajout d'une mesure du temps
         select itemAct in "-Lancer directement" "- Lancer avec compteur "
do
echo "Le choix fait $REPLY:$itemAct"
# pour tester la variable de type entier :
if let $REPLY 2>/dev/null
then
   echo "choix conforme $itemAct "


case "$REPLY" in
   1)
    LaDATE='/bin/date'
BEFORE=$($LaDATE +'%s')
echo $BEFORE
  
echo "choix 1"
find "$REP" -not -path '*/\.*' -type f -size +"$TailleMo"M -printf "%h*%f*%s*%c* dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*" -exec /usr/bin/md5sum -b {} \; | sort -n -t "*" -k 6| awk -F"*" '{ TMo=$3/1048576; printf $1" § "$2 " § " TMo " § " $4 " § " $5 " § " $6 "\n"; }' >> "$CheminActionDbl/$FILE2"
cat "$CheminActionDbl/$FILE2"
      ;;
   2)
LaDATE='/bin/date'
BEFORE=$($LaDATE +'%s')
echo $BEFORE

echo "choix2"
echo "
============================================================================
3eMethode Hizoka post 37"

TailleTotale=$(du -c "$REP" | sed -n '/total/ s/[[:space:]].*//p')
TailleOK=0
# La ligne suivante affiche dans la variable tableau Fichiers les différents champs avec un séparateur=@ entre chemin et nom fichier et un séparateur espace entre les autres info utilise \0 pour caractere de fin de ligne
#avec -t  ajoute également silencieusement une nouvelle ligne finale manquante si le flux d'entrée n'en a pas
#l' option -d pour fournir un délimiteur de ligne différent.
mapfile -d '' -t Fichiers < <(find "$REP" -not -path '*/\.*' -type f -size +"$TailleMo"M -printf "%h@%f@%s*%c* dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*\0")
for Fichier in "${Fichiers[@]}"
do
   # ${paramètre%%mot} suppression d'un motif correspondant au suffixe (ici mot= @*) Sur un tableau, tous ses éléments sont transformés 
# %enlève le plus court motif, et %% le plus long 
  h="${Fichier%%@*}"
  f="${Fichier%@*}"
# ${paramètre##mot} suppression d'un motif correspondant au préfixe (ici mot=*@) Sur un tableau, tous ses éléments sont transformés 
# #enlève le plus court motif,
  f="${f#*@}"
# et ## enlève le plus long 

  reste="${Fichier##*@}"
 # echo "Fichier : ${Fichier}"
 # echo "%h : ${h}"
 # echo "%f : ${f}"
 # echo "reste : ${reste}"
Taille=$(du "${h}/${f}" | sed 's/[[:space:]].*//')
TailleOK=$((TailleOK + Taille))
# echo -en "\r... affiche l'incrémentation du compteur sur place
echo -en "\rProgression : ${TailleOK} / ${TailleTotale}"
# reconstruction de la ligne résutat initiale suivante
# find "$REP" -not -path '*/\.*' -type f -size +"$TailleMo"M -printf "%h*%f*%s*%c* dernier accès le %AA %Ad %AB %AY à %AH:%AM:%AS*" -exec /usr/bin/md5sum -b {} \; | sort -n -t "*" -k 6| awk -F"*" '{ TMo=$3/1048576; printf $1" § "$2 " § " TMo " § " $4 " § " $5 " § " $6 "\n"; }' | tee -a "$CheminActionDbl/$FILE2"

#/usr/bin/md5sum -b "${h}/${f}" 
result=$(/usr/bin/md5sum -b "${h}/${f}")
#echo '$result='"$result"
result2=$(echo $result | cut -d '*' -f 1)
#echo '$result2='"$result2"
#echo "$h*$f*${reste}$result2" 2>&1 | sort -n -t "*" -k 6| awk -F"*" '{ TMo=$3/1048576; printf $1" § "$2 " § " TMo " § " $4 " § " $5 " § " $6 "\n"; }' | tee -a $CheminActionDbl/$FILE3
echo "$h*$f*${reste}$result2" 2>&1 | sort -n -t "*" -k 6| awk -F"*" '{ TMo=$3/1048576; printf $1" § "$2 " § " TMo " § " $4 " § " $5 " § " $6 "\n"; }' >> $CheminActionDbl/$FILE3


done
echo "
"
cat "$CheminActionDbl/$FILE3"
;;
*)
echo "mauvais choix"
   ;;
   esac
else
    echo "Entrée erronée ! variable non numérique"
fi

# Compute and display the elapsed time
AFTER=$($LaDATE +'%s')
echo "
$AFTER"
ELAPSED=$(($AFTER - $BEFORE))
echo "Temps écoulé =$ELAPSED"

done

Hors ligne

#42 Le 07/11/2020, à 11:42

Hizoka

Re : [RESOLU] Comment améliorer cette barre de progression

Le souci semble venir de Firefox, pas de problème avec Chromium


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#43 Le 07/11/2020, à 15:49

Hizoka

Re : [RESOLU] Comment améliorer cette barre de progression

Je réfléchissais un peu.

Niveau temps d’exécution entre ta version avec progression et une version dans lequel il y aurait juste un echo avec un texte toujours identique (et sans calculs) sont ils aussi rapides ?
En gros, est-ce l'affichage de la progression qui ralenti le truc plus que les calculs ?

Et si c'est ça, ne pourrait on pas lancer une fonction qui taffe en arrière plan et envoie les infos dans un fichier txt, et dans le thread principal, on lit ce fameux fichier ?
Ou un système identique avec un FIFO (que je ne maîtrise pas)

Dernière modification par Hizoka (Le 07/11/2020, à 18:51)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#44 Le 08/11/2020, à 09:50

philoeil

Re : [RESOLU] Comment améliorer cette barre de progression

Bonjour,
Merci Hizoka pour ton commentaire
Pour ma part j'en reste là, pour le moment cela me convient, je propose au lancement de choisir avec ou pas l'affichage de la barre de progression.

Mais effectivement je pourrai prévoir un lancement dans des sous shell de ces  étapes longues, une bonne idée à envisager

Hors ligne