Bash renomer fichier à la volé
GeRgOs
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,
J'essaye de renomer les fichiers d'un repertoire au fomat "mon_fichier_a_moi.ext" en "mon fichier a moi.ext" .
J'ai essayé cela :
Mais ça ne semble pas fonctionner .
De la meme maniere j'aimerais pouvoir changer la fin de tous mes fichiers de la maniere suivante :
Passé de "mon fichier a moi.ext" en "mon fichier a moi~50.ext"
Si quelqu'un a des idées .
Merci .
J'essaye de renomer les fichiers d'un repertoire au fomat "mon_fichier_a_moi.ext" en "mon fichier a moi.ext" .
J'ai essayé cela :
function do_rename()
{
a=$(echo $1 | sed -e "s/_/\/g")
if test "$a" != "$1"
then
mv "$1" $(echo $1 | sed -e "s/_/\/g")
fi
}
find $1 -type f | while read a
do
do_rename "$a";
done
Mais ça ne semble pas fonctionner .
De la meme maniere j'aimerais pouvoir changer la fin de tous mes fichiers de la maniere suivante :
Passé de "mon fichier a moi.ext" en "mon fichier a moi~50.ext"
Si quelqu'un a des idées .
Merci .
A voir également:
- Bash renomer fichier à la volé
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
3 réponses
Salut,
Déjà ton expression avec "sed" est foireuse ;-((
Ça ça remplace l'underscore par un antislash :-\
Ensuite, autant se servir du remplacement des paramètres directement avec le shell :
;-))
Déjà ton expression avec "sed" est foireuse ;-((
sed -e "s/_/\/g"
Ça ça remplace l'underscore par un antislash :-\
Ensuite, autant se servir du remplacement des paramètres directement avec le shell :
[tmpfs]$ A="mon_fichier_avec_plein_de_tirets_bas.txt"
[tmpfs]$ echo "${A}"
mon_fichier_avec_plein_de_tirets_bas.txt
[tmpfs]$ echo "${A//_/ }"
mon fichier avec plein de tirets bas.txt
[tmpfs]$
;-))