Pages : 1
#1 Le 11/07/2021, à 00:06
- DAVIDS99
remplacement accent
Bonjour,
Je souhaite remplacer tous les accents des noms de fichiers comportant é par e.
J'utilise ce script, mais ça ne fonctionne pas avec les noms de fichier avec des espaces.
for f in $(find /share/Partages/ -name "*é*"); do mv "$f" "${f/é/e}"; done
il m'indique No such file or directory
merci pour votre aide.
Modération : balises [ code ] ajoutées
Dernière modification par bruno (Le 11/07/2021, à 10:38)
Hors ligne
#2 Le 11/07/2021, à 05:51
- pingouinux
Re : remplacement accent
Bonjour,
Essaye ceci, qui ne remplace que le premier é :
for f in "$(find /share/Partages/ -name "*é*")"; do mv "$f" "${f/é/e}"; done
Si tu veux qu'ils le soient tous :
for f in "$(find /share/Partages/ -name "*é*")"; do mv "$f" "${f//é/e}"; done
Édité :
Et pour éviter d'écraser un fichier qui existe déjà :
for f in "$(find /share/Partages/ -name "*é*")"; do mv -i "$f" "${f//é/e}"; done
Édité (2) :
Autre solution :
find /share/Partages/ -name "*é*" -exec rename -n 's/é/e/g' {} \;
Dernière modification par pingouinux (Le 11/07/2021, à 06:00)
Hors ligne
#3 Le 11/07/2021, à 08:18
- nany
Re : remplacement accent
Bonjour,
Édité :
Et pour éviter d'écraser un fichier qui existe déjà :for f in "$(find /share/Partages/ -name "*é*")"; do mv -i "$f" "${f//é/e}"; done
On peut (doit ?) se passer de la commande find :
for f in /share/Partages/*é* ; do mv -i "$f" "${f//é/e}"; done
Hors ligne
#4 Le 11/07/2021, à 09:05
- MicP
Re : remplacement accent
Bonjour
Pour éviter l'écrasement d'un fichier existant,
on peut utiliser l'option --backup=numbered de la commande mv
michel@debbull:~/monTest$ ls -l
total 16
-rw-r--r-- 1 michel michel 2 11 juil. 10:07 'nom etale'
-rw-r--r-- 1 michel michel 3 11 juil. 10:08 'nom étale'
-rw-r--r-- 1 michel michel 4 11 juil. 10:08 'nom étalé'
-rw-r--r-- 1 michel michel 5 11 juil. 10:08 'nom étiré'
michel@debbull:~/monTest$ for f in *é*; do mv --verbose --backup=numbered "$f" "${f//é/e}"; done
renommé 'nom étale' -> 'nom etale' (archive : 'nom etale.~1~')
renommé 'nom étalé' -> 'nom etale' (archive : 'nom etale.~2~')
renommé 'nom étiré' -> 'nom etire'
michel@debbull:~/monTest$ ls -l
total 16
-rw-r--r-- 1 michel michel 4 11 juil. 10:08 'nom etale'
-rw-r--r-- 1 michel michel 2 11 juil. 10:07 'nom etale.~1~'
-rw-r--r-- 1 michel michel 3 11 juil. 10:08 'nom etale.~2~'
-rw-r--r-- 1 michel michel 5 11 juil. 10:08 'nom etire'
michel@debbull:~/monTest$
Dernière modification par MicP (Le 11/07/2021, à 09:09)
Hors ligne
#5 Le 11/07/2021, à 11:59
- DAVIDS99
Re : remplacement accent
Cette commande fonctionne, mais je n'ai pas la récursivité sur les sous dossiers.
for f in /share/Partages/*é* ; do mv -i "$f" "${f//é/e}"; done
Concernant la réponse de l'execution d'Exec, le rename ne fonctionne pas, je pense que c''est à cause de la version de linux qui est propriétaire (NAS) et qui ne possède pas la commande rename :
find /share/Partages/ -name "*é*" -exec rename -n 's/é/e/g' {} \;
Merci pour vos réponses.
Hors ligne
#6 Le 11/07/2021, à 12:30
- pingouinux
Re : remplacement accent
Cette commande fonctionne, mais je n'ai pas la récursivité sur les sous dossiers.
for f in /share/Partages/*é* ; do mv -i "$f" "${f//é/e}"; done
shopt -s globstar # Pour avoir la récursivité
shopt -s dotglob # Pour traiter les fichiers cachés
for f in /share/Partages/**/*é* ; do mv -i "$f" "${f//é/e}"; done
Hors ligne
#7 Le 12/07/2021, à 06:23
- bruno
Re : remplacement accent
Modération : message #5 - merci d'utiliser les balises [ code ] pour les commandes et les contenus de fichiers :
Saisir des commandes dans un terminal et donner le résultat - Voilà la marche à suivre :
Ouvre le terminal avec ctrl-alt-t
Sélectionne la commande voulue avec un triple clic (ça sélectionne toute la ligne, même la fin si on ne la voit pas)
Colle-la dans le terminal avec un clic molette, valide avec Entrée
Sélectionne et copie tout ce que te dit le terminal depuis la commande jusqu'à la dernière ligne incluse
Clique sur le <> de l'éditeur de message
Colle là où se trouve le curseur (entre le ] et le [)
Refais toutes les étapes depuis la 2 pour les autres commandes.
Pages : 1