Renommer un lot de fichiers
Résolu/Fermé
A voir également:
- Renommer un lot de fichiers
- Renommer plusieurs fichiers - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Comment réduire la taille d'un fichier - Guide
- Explorateur de fichiers - Guide
- Faire un lot sur vinted - Guide
5 réponses
Clap clap.
Z'êtes forts !
Bravo pour le sed. Il va falloir que je me penche bien dessus pour comprendre tous les caractères de substitution.
Un point de détail tout de même, je ne souhaite récupérer que les 6 premiers caractères de la date.
toto_20080816.titi
en
200808_toto.titi
Une idée ?
Z'êtes forts !
Bravo pour le sed. Il va falloir que je me penche bien dessus pour comprendre tous les caractères de substitution.
Un point de détail tout de même, je ne souhaite récupérer que les 6 premiers caractères de la date.
toto_20080816.titi
en
200808_toto.titi
Une idée ?
Snif snif...
Je pleure tellement c'est beau !
Bon, sinon, sans rire, merci pour le lien, c'est exactement ce que je cherchais et merci pour la commande: ça marche nickel.
Promis, ma prochaine question sera postée avec mon nouveau pseudo: zeunixmaster ;-)
Je pleure tellement c'est beau !
Bon, sinon, sans rire, merci pour le lien, c'est exactement ce que je cherchais et merci pour la commande: ça marche nickel.
Promis, ma prochaine question sera postée avec mon nouveau pseudo: zeunixmaster ;-)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
6 oct. 2008 à 10:52
6 oct. 2008 à 10:52
Salut,
jp@MDK:~/tmpfs ssh$ ls -1 *.txt tata_20080816.txt tati_20080816.txt tato_20080816.txt tatu_20080816.txt tita_20080816.txt titi_20080816.txt tito_20080816.txt titu_20080816.txt tota_20080816.txt toti_20080816.txt toto_20080816.txt totu_20080816.txt tuta_20080816.txt tuti_20080816.txt tuto_20080816.txt tutu_20080816.txt jp@MDK:~/tmpfs ssh$ for fich in *.txt;do echo "mv $fich $(sed 's/\(.*\)_\(.*\)\.\(.*\)/\2_\1.\3/' <<<$fich)";done mv tata_20080816.txt 20080816_tata.txt mv tati_20080816.txt 20080816_tati.txt mv tato_20080816.txt 20080816_tato.txt mv tatu_20080816.txt 20080816_tatu.txt mv tita_20080816.txt 20080816_tita.txt mv titi_20080816.txt 20080816_titi.txt mv tito_20080816.txt 20080816_tito.txt mv titu_20080816.txt 20080816_titu.txt mv tota_20080816.txt 20080816_tota.txt mv toti_20080816.txt 20080816_toti.txt mv toto_20080816.txt 20080816_toto.txt mv totu_20080816.txt 20080816_totu.txt mv tuta_20080816.txt 20080816_tuta.txt mv tuti_20080816.txt 20080816_tuti.txt mv tuto_20080816.txt 20080816_tuto.txt mv tutu_20080816.txt 20080816_tutu.txt jp@MDK:~/tmpfs ssh$Si ça marche, enlève juste le "echo" et les quotes doubles, et roulez jeunesse :-))
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
6 oct. 2008 à 11:29
6 oct. 2008 à 11:29
Salut Zeunixnewbie, Salut Jpicy,
En adaptant l'expression de Jipicy, on peut aussi faire çà
ls -1 *.txt | sed 's/\(.*\)_\(.*\)\.\(.*\)/mv \1_\2\.\3 \2_\1.\3/'
et rajouter un pipe vers sh si c'est ce qui est attendu :
ls -1 *.txt | sed 's/\(.*\)_\(.*\)\.\(.*\)/mv \1_\2\.\3 \2_\1.\3/' | sh
Dal
En adaptant l'expression de Jipicy, on peut aussi faire çà
ls -1 *.txt | sed 's/\(.*\)_\(.*\)\.\(.*\)/mv \1_\2\.\3 \2_\1.\3/'
et rajouter un pipe vers sh si c'est ce qui est attendu :
ls -1 *.txt | sed 's/\(.*\)_\(.*\)\.\(.*\)/mv \1_\2\.\3 \2_\1.\3/' | sh
Dal
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
6 oct. 2008 à 12:11
6 oct. 2008 à 12:11
Essaye çà :
ls -1 *.txt | sed 's/\(.*\)_\(.\{6\}\)\(.*\)\.\(.*\)/mv \1_\2\3\.\4 \2_\1.\4/'
(c'est sur une seule ligne)
Et rajoute le pipe vers sh si celà te convient.
[idem pour la solution de Jipicy, tu intercales \(.\{6\}\) à la suite du underscore et le \3 devient \4 car il y a désormais 4 captures]
Dal
ls -1 *.txt | sed 's/\(.*\)_\(.\{6\}\)\(.*\)\.\(.*\)/mv \1_\2\3\.\4 \2_\1.\4/'
(c'est sur une seule ligne)
Et rajoute le pipe vers sh si celà te convient.
[idem pour la solution de Jipicy, tu intercales \(.\{6\}\) à la suite du underscore et le \3 devient \4 car il y a désormais 4 captures]
Dal
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
6 oct. 2008 à 12:38
6 oct. 2008 à 12:38
Pas mieux ;-))
Merci ;-)
Merci ;-)
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
6 oct. 2008 à 13:13
6 oct. 2008 à 13:13
Salut Jipicy,
Pour çà aussi, moi je dis .. "pas mieux" : http://www.commentcamarche.net/faq/sujet 9536 sed introduction a sed part i
çà aidera notre ami zeunixnewbie à comprendre .. en particulier ce passage :
http://www.commentcamarche.net/faq/sujet 9559 sed introduction a sed part ii#les sous expressions et references arrieres
Dal
Pour çà aussi, moi je dis .. "pas mieux" : http://www.commentcamarche.net/faq/sujet 9536 sed introduction a sed part i
çà aidera notre ami zeunixnewbie à comprendre .. en particulier ce passage :
http://www.commentcamarche.net/faq/sujet 9559 sed introduction a sed part ii#les sous expressions et references arrieres
Dal