Tout ou presque sur les logiciels libres, linux, protection de la vie privée... et aussi Humeur!

Aller au contenu | Aller au menu | Aller à la recherche

Supprimer les espaces dans les noms de fichier

Supprimer les espace et accents des fichiers à la volée en ligne de commandeC'est toujours plus simple de travailler sur des fichiers n'ayant pas d'espace dans leur nom, alors voici un petit script qui permet de remplacer à la volée les espaces par des "_".

#!/bin/sh
# Suppression des blancs dans les noms des
# fichiers du répertoire courant et remplacement
# par des "_" factorisés.
# Mémoire à Jeanmm pour ce script.
for a in * ;do
b=$(echo "$a" | tr " " _ | tr --squeeze-repeats _ _ )
if [ "$a" != "$b" ] ; then
echo "mv \\"$a\\" $b"
mv "$a" $b
fi
done

On peut améliorer le script pour remplacer également les accents (é, è, à, ô, û; ù...)

D'une manière générale, il est préférable d'éviter les accents et espaces sur les noms de fichier, c'est un principe de base.
Rappel: on rend exécutable un script par un "chmod +x" et on le lance par un "./nom_du_script".

Base d'une boucle (for, do, done) et d'un script: Punition de mon fils

Articles à lire sur des sujets Similaires

Commentaires

1. Le dimanche 8 janvier 2017, 01:52 par Thierry

Il y a aussi detox sous linux qui remplace les espaces et les caractères accentués ; exemple, pour tous les fichiers du dossier courant :

detox -s lower *

bye

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : https://chispa.fr/sima78/index.php?trackback/7

Fil des commentaires de ce billet