Remplacement de chaîne dans les noms de fichiers sous Linux

1

J'ai une tonne de fichiers appelés File30_i.txtpour i=1, 2, 3, 4, 5... Y at - il un moyen facile de renommer rapidement alors File20_i.txtpar exemple?

JMzance
la source

Réponses:

3

Il existe un outil pour cela appelé rename:

rename 's/File30/File20/' *.txt

Pour un aperçu avec -n:

rename -n 's/File30/File20/' *.txt
lesmana
la source
0

Ma méthode préférée serait d’utiliser sed pour générer un script, par exemple:

ls -1|sed 's/File30_\([^.]*\).txt/mv & File20_\1.txt/'|bash

Cela devrait renommer selon les noms de fichiers que vous avez donnés dans la question. Pour prévisualiser les commandes, vous pouvez faire:

ls -1|sed 's/File30_\([^.]*\).txt/mv & File20_\1.txt/'
tr00st
la source
0

Renamer fonctionne sous Windows, Mac et Linux:

$ renamer --find Find30 --replace Find20 *.txt
Lloyd
la source