Renommer en masse des fichiers (Linux)
03/04/2015
Dans les projets auxquels je participe, j'ai souvent besoin de renommer des fichiers en masse; en remplaçant une sous-chaine fixe du nom de fichier par une autre et ce sur plusieurs fichiers d'un répertoire à la fois.
Voici un script shell qui me permet d'effectuer ces opérations:
#!/bin/sh
# RSLOF : Replace Substring in List of FileNames
#
# @author : @RGuillome
# @args :
# - 1 : substring to replace
# - 2 : replace by...
if [ $# -le 2 ];
then echo "Usage : rslof [SUBSTRING_TO_REPLACE] [SUBSTRING_REPLACEMENT]"
fi
substring_to_replace=$1
substring_replacement=$2
echo "Replacement of $1 by $2"
for i in `ls *$substring_to_replace*`
do
new_name=$(echo "${i/$substring_to_replace/$substring_replacement}")
echo "$i name will be replaced by $new_name"
mv $i $new_name
done
blog comments powered by Disqus