#26 Le 14/05/2014, à 00:06
- Postmortem
Re : [Résolu] Antislash dans nom de fichier
Salut,
Pas besoin de modifier la variable IFS :
while read -rd ''; do echo mv -i "$REPLY" "${REPLY% }"; done < <(find . -depth -type d -name '* ' -print0)
Après les options -rd de read, il s'agit de 2 simples quotes qui se suivent et non un guillemet.
En couplant ça avec -print0 dans find, on boucle correctement sur n'importe quel nom de fichier.
Édit : ajout de -depth à find, ça évitera des soucis suite au renommage.
Dernière modification par Postmortem (Le 14/05/2014, à 00:14)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#27 Le 27/05/2014, à 16:04
- trax62
Re : [Résolu] Antislash dans nom de fichier
Merci ca fonctionne !
petit récap si ce post peut servir un jour :
find * | grep '\\'
-> pour trouver les fichiers ou dossiers avec un \
while read -r fic; do mv -i "$fic" "${fic//\\/}"; done < <(find -name '*\\*')
-> supprime le \ d'un nom de dossier ou fichier
while read -rd ''; do echo mv -i "$REPLY" "${REPLY% }"; done < <(find . -depth -type d -name '* ' -print0)
-> supprime un espace en fin de fichier ou de dossier
Hors ligne