GNU/Linux >> Tutoriels Linux >  >> Linux

Comment renommer plusieurs fichiers en une seule commande ou un seul script sous Unix ?

La plupart des shells standard fournissent un moyen de faire une simple substitution de texte dans les variables shell. http://tldp.org/LDP/abs/html/parameter-substitution.html explique comme suit :

${var/Pattern/Replacement}

First match of Pattern, within var replaced with Replacement.

Utilisez donc ce script pour parcourir tous les fichiers appropriés et renommer chacun d'eux :

for file in aro_tty-mIF-*_opt
do
    mv -i "${file}" "${file/-mIF-/-mImpFRA-}"
done

J'ai ajouté une option -i pour que vous ayez la possibilité de confirmer chaque opération de renommage. Comme toujours, vous devez faire une sauvegarde de tous vos fichiers avant de renommer ou de supprimer une grande quantité de fichiers.


Si vous n'avez pas le rename de Perl :

perl -e '
FILE:for $file (@ARGV){
        ($new_name = $file) =~ s/-mIF-/-mImpFRA-/
        next FILE if -e $new_name;
        rename $file => $new_name
}' *_opt

Si vous faites avoir le rename de Perl :

rename 's/-mIF-/-mImpFRA-/' *_opt

Avant d'essayer des commandes complexes telles que les suivantes, sauvegardez vos fichiers . Vous ne savez jamais ce qu'une faute de frappe (la mienne ou la vôtre) peut causer.

Avec mv (comme vous l'avez demandé en commentaire --- rename comme suggéré dans l'autre réponse est probablement plus sûr, surtout si vous pouvez avoir des espaces ou des caractères étranges dans vos noms de fichiers) quelque chose du style

for f in *_opt; do
    a="$(echo $f | sed s/-mIF-/-mImpFRA-/)"
    mv "$f" "$a"
done

Linux
  1. Comment exécuter une commande unique sur plusieurs systèmes distants à la fois

  2. Comment renommer plusieurs fichiers en une seule commande ou un script sous Unix ? ?

  3. Comment renommer plusieurs fichiers à l'aide de Find ?

  4. Comment puis-je ftp et télécharger des fichiers à partir d'un script shell UNIX

  5. Comment remplacer une chaîne dans plusieurs fichiers en ligne de commande Linux

Comment renommer des fichiers sous Linux

Renommer la commande sous Linux (renommer plusieurs fichiers)

Comment renommer un ou plusieurs fichiers sous Linux

Comment renommer des fichiers et des répertoires dans Ubuntu 20.04

Comment exécuter plusieurs commandes Linux en une seule commande

Commande ls sous Linux/UNIX