Renommer plusieurs fichiers en bash
Résolu/Fermé
A voir également:
- Renommer plusieurs fichiers en même temps linux
- Renommer plusieurs fichiers en même temps - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Blocage agriculteur carte en temps réel - Guide
- Renommer iphone - Guide
- Explorateur de fichiers - Guide
3 réponses
mamiemando
Messages postés
33077
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
18 avril 2024
7 748
Modifié le 12 janv. 2022 à 13:27
Modifié le 12 janv. 2022 à 13:27
Bonjour,
Il faut itérer sur les fichiers de ton dossier en récupérant le résultat de la commande
Le mieux est d'écrire un petit script (e.g.
On sauve, on quitte et depuis un terminal, on rend le script exécutable, et on prépare un petit test :
... et on lance le script :
Bonne chance
Il faut itérer sur les fichiers de ton dossier en récupérant le résultat de la commande
find. Au cours de cette itération, tu incrémentes un compteur qui te permettra de construire le nom des fichiers cibles. Puis tu fais le renommage avec
renameou
mv.
Le mieux est d'écrire un petit script (e.g.
script.sh)
#!/bin/bash i=0 for f in $(find $1 | grep "txt$"); do dir=$(dirname "$f") mv "$f" "$dir/doc$i.txt" i=$(($i+1)) done
On sauve, on quitte et depuis un terminal, on rend le script exécutable, et on prépare un petit test :
chmod a+x script.sh mkdir -p toto touch toto/popo.txt toto/lulu.txt toto/titi.txt
... et on lance le script :
(mando@silk) (~) $ ls toto/
lulu.txt popo.txt titi.txt
(mando@silk) (~) $ ./script.sh toto/
(mando@silk) (~) $ ls toto/
doc0.txt doc1.txt doc2.txt
Bonne chance
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
12 janv. 2022 à 18:27
12 janv. 2022 à 18:27
hello
enlever le -n si c'est ok
enlever le -n si c'est ok
$ rename -n 's/.+/our $i; sprintf("doc%d.txt", 1+$i++)/e' *.txt
rename(lulu.txt, doc1.txt)
rename(popo.txt, doc2.txt)
rename(titi.txt, doc3.txt)
12 janv. 2022 à 15:09
12 janv. 2022 à 15:32