1 votes

En utilisant le terminal pour renommer certains fichiers numérotés

J'ai une série de fichiers numérotés de 1 à 20, et Terminal les trie comme suit :

episode1.txt
episode10.txt
episode11.txt
episode12.txt

Je veux renommer les fichiers de 1 à 9 en insérant un 0 devant le numéro. Mon code est le suivant :

pour fichier in episode{1-9}.txt
faire
   renommer -vs "episode"* "episode0"*
faire

J'ai également essayé la commande 'mv', mais cela ne fonctionne pas. Quelqu'un a-t-il des suggestions ? Merci d'avance

0voto

8bittree Points 2817

Pour énumérer une séquence, utilisez {x..y} au lieu de {x-y}.

Comme tous vos fichiers ont un nom très similaire, nous pouvons utiliser l'expansion de paramètre pour supprimer le préfixe episode tout en le remplaçant par episode0.

La commande complète ressemble à ceci :

for file in episode{1..9}.txt
do
    mv "$file" "episode0${file#episode}"
done

${file#episode} est une expansion de paramètre qui, dans ce cas, étend le paramètre fichier tout en supprimant le motif de préfixe le plus court qui correspond à episode.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X