remplacer espaces en underscore récursivement thunar

Partagez ici vos Trucs et vos Astuces.
Répondre
Avatar de l’utilisateur
CTparental
Membre
Membre
Messages : 38
Inscription : 14 sept. 2016, 21:29
Contact :
Status : Hors-ligne

basé sur le scripte de passage en minuscule de ce poste viewtopic.php?f=7&t=722#p8960
mais pour les espaces cette fois-ci.

rename_all_space2underscore

Code : Tout sélectionner

#!/bin/sh
(
tmpfile=$(mktemp)
if [ -d "$*" ] ; then
   find "$*" -type d | sort -r | sed -e "s/\.\///g" | sed -e "s/^\.$//g" | grep "[[:blank:]]" > "$tmpfile"
   nline=$( wc -l < "$tmpfile" )
   echo "# directories renaming..."
   i=1
   while read -r line
   do
      n=$(echo "$line" | tr -d -c "/" | wc -c )
      if [ "$n" -ge 1 ]
      then
         dirp=$( echo "$line" | cut -d "/" -f1-"$n" )
         n=$(( n +1 ))
         dir=$( echo "$line" | cut -d "/" -f$n )
         mv   "$line" "$dirp"/"$(echo "$dir" | tr "[:blank:]" "_")" 
      else
         mv  "$line" "$(echo "$line"| tr "[:blank:]" "_")" 
      fi
      echo $(( (i * 46 ) / nline ))
      i=$(( i +1 ))
   done < "$tmpfile"
   n=$(echo "$*" | tr -d -c "/" | wc -c )
   if [ "$n" -ge 1 ]
   then
      dirp=$( echo "$*" | cut -d "/" -f1-"$n" )
      n=$(( n +1 ))
      dir=$( echo "$*" | cut -d "/" -f$n )
      cd "$dirp"/"$(echo "$dir" | tr "[:blank:]" "_")" || exit
   else
      cd "$(echo "$*" | tr "[:blank:]" "_")" || exit
   fi
   echo "50"
   find  -type f | sort -r | sed -e "s/\.\///g" | grep "[[:blank:]]" > "$tmpfile"
   nline=$( wc -l < "$tmpfile" )
   echo "# files renaming..."
   while read -r line
   do
      n=$(echo "$line" | tr -d -c "/" | wc -c )
      if [ "$n" -ge 1 ]
      then
         dirp=$( echo "$line" | cut -d "/" -f1-"$n" )
         n=$(( n +1 ))
         file=$( echo "$line" | cut -d "/" -f$n )
         mv   "$line" "$dirp"/"$(echo "$file" | tr "[:blank:]" "_")" 
      else
         mv  "$line" "$(echo "$line" | tr "[:blank:]" "_")" 
      fi
      echo $(( ((i * 50 ) / nline) + 46 ))
      i=$(( i +1 ))
   done < "$tmpfile"
   
fi
if [ -f "$*" ] ; then
   n=$(echo "$*" | tr -d -c "/" | wc -c )
   if [ "$n" -ge 1 ]
   then
      dirp=$( echo "$*" | cut -d "/" -f1-"$n" )
      n=$(( n +1 ))
      file=$( echo "$*" | cut -d "/" -f$n )
      mv   "$*" "$dirp"/"$(echo "$file" | tr "[:blank:]" "_")" 
   else
      mv  "$*" "$(echo "$*" | tr "[:blank:]" "_")" 
   fi
fi
sleep 1
rm "$tmpfile"
echo "100"
 ) |
zenity --progress \
  --title="Rename all lower < $* >" \
  --text="renaming..." \
  --percentage=0 \
  --width=400 \
  --auto-close

if [ "$?" != 0 ] ; then
   rm "$tmpfile"
   zenity --error \
          --text="Renaming cancel."

fi
AMD A6-6400K
Radeon HD 7750/8740 / R7 250E 1GDDR5
8G ram DDR3
Debian Sid Xfce lightdm
Avatar de l’utilisateur
PengouinPdt
Contributeur
Contributeur
Messages : 1343
Inscription : 23 avr. 2016, 23:37
Localisation : 47/FR
Diaspora* : https://framasphere.org/u/hucste
Contact :
Status : Hors-ligne

Code : Tout sélectionner

if [ ! "$?" = 0 ] ; then
n'est pas correct ...

Code : Tout sélectionner

 if [ "$?" != 0 ] ... 
D'autant que zenity renvoie des codes d'erreurs spécifiques - mieux vaut les capturer pour renvoyer la bonne info selon le code
PengouinPdt { le seul, le vrai } ~ " Libre as a Pengouin "
- DIY - Debian Sid | Devuan Ceres
----
Ne réponds pas aux PM d'assistance
Avatar de l’utilisateur
CTparental
Membre
Membre
Messages : 38
Inscription : 14 sept. 2016, 21:29
Contact :
Status : Hors-ligne

PengouinPdt a écrit :

Code : Tout sélectionner

if [ ! "$?" = 0 ] ; then
n'est pas correct ...

Code : Tout sélectionner

 if [ "$?" != 0 ] ... 
D'autant que zenity renvoie des codes d'erreurs spécifiques - mieux vaut les capturer pour renvoyer la bonne info selon le code
c'est corrigé , merci de l'avoir remarqué.
AMD A6-6400K
Radeon HD 7750/8740 / R7 250E 1GDDR5
8G ram DDR3
Debian Sid Xfce lightdm
Répondre