Supprimer les espaces des noms de fichiers sous Linux [fermé]
J'ai des centaines de fichiers jpg dans différents dossiers, comme ceci:
- 304775 105_01.jpg
- 304775 105_03.jpg
- 304775 105_05.jpg
- 304775 105_07.jpg
- 304775 105_02.jpg
- 304775 105_04.jpg
- 304775 105_06.jpg
Fondamentalement, je dois supprimer les espaces. Je connais déjà la commande pour changer les espaces en traits de soulignement:
$ rename "s/ /_/g" *
Mais je n'ai pas besoin des traits de soulignement dans ce cas. J'ai juste besoin de supprimer l'espace. Je j'ai essayé ce qui suit, mais cela n'a pas fonctionné:
$ rename "s/ //g" *
Toute aide serait appréciée.
23
demandé sur
Sam Timalsina
2013-03-12 00:20:59
2 réponses
Vous pouvez faire quelque chose comme ceci:
IFS="\n"
for file in *.jpg;
do
mv "$file" "${file//[[:space:]]}"
done
20
répondu
Blake
2013-03-11 20:31:30
Ce qui suit fonctionnerait au cas où c'était vraiment un espace.
$ rename "s/ //g" *
Essayez
$ rename "s/\s+//g" *
\s
est un caractère d'espacement, appartenant à l'ensemble de [ \t\r\n]
.
35
répondu
Anirudh Ramanathan
2013-03-11 20:25:06