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.

#1 Le 20/02/2025, à 23:27

Frankkunst

utilisation rsync ...| sed ... | zenity --progress

Bonjour à tous,
Voilà j'aimerais rendre un peu plus bavard la fenêtre zenity le temps de la synchronisation .
Donc en incluant le caractère "#" en début des lignes de la sortie standard de rsync, j'ai donc fait ceci :

rsync -av ..... source destination | sed 's/\(.[a-z]\)/#\1/' | zenity --progress --width=550 --pulsate 

Alors cela fonctionne seulement en partie, je n'ai que les trois ou quatre dernières lignes qui défilent dans la fenêtre zenity !?...
Est ce que quelqu'un aurait une idée ?
Merci d'avance


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#2 Hier à 03:07

tycooon

Re : utilisation rsync ...| sed ... | zenity --progress

Bonsoir ,
Son cousin avec yad , ça va très vite causer dans les fenêtres --log-expanded  et dans la barre de progression...

#!/bin/bash

OPTIONS_SAUV="-av --stats --delete-after --info=progress2"

DIR_SOURCE="/chemin/de/la/source"
DIR_DEST="/chemin/de/la/cible"


export GDK_BACKEND=x11

{
  rsync $OPTIONS_SAUV "${DIR_SOURCE%/}/" "$DIR_DEST/" 2>&1 | tr '\r' '\n' | while IFS= read -r line; do
    if [[ "$line" =~ ([0-9]+)% ]]; then
      pourcentage="${BASH_REMATCH[1]}"
      echo "$pourcentage"
      echo "# Progression : $pourcentage %"
    else
      echo "# $line"
    fi
  done
} | yad --progress \
        --title="Sauvegarde" \
        --text="Sauvegarde en cours..." \
        --enable-log \
        --log-expanded \
        --width=800 --height=200 \
        --button="Fermer:0"

Hors ligne

#3 Hier à 05:39

Watael

Re : utilisation rsync ...| sed ... | zenity --progress

salut tycooon,

tu peux supprimer les accolades : elles n'ont pas d'utilité, parce qu'il ne s'agit pas d'une liste de commandes, mais d'un enchaînement de pipes.

on pourrait écrire :

rsync ... \
    | tr ... \
    | while read ...
do
...
done | yad ...

et en un peu plus foo :

exec {foo}< <(rsync ... | tr ...)
while read -u $foo ...
do
    ...
done | yad ...

exec <&$foo-

wink

Dernière modification par Watael (Hier à 13:03)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#4 Hier à 08:37

Frankkunst

Re : utilisation rsync ...| sed ... | zenity --progress

Merci beaucoup Watael et tycooon,
Je vais étudier tout ça ! roll smile
Bonne journée

Dernière modification par Frankkunst (Hier à 15:34)


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne