#1 Le 04/08/2022, à 10:38
- Akatu
[RÉSOLU] Copier et renommer avec numérotation si existant
Bonjour,
J'ai plusieurs dossiers dans lesquels il peut exister le même nom de fichier. Exemple :
. Dossier A
.. fichier 1.txt
.. fichier 2.txt
.. fichier 3.txt <<<< COMMUN
.. fichier 4.txt
.. fichier 5.txt
. Dossier B
.. fichier 3.txt <<<< COMMUN
.. fichier 6.txt
. Dossier C
.. fichier 2.txt
.. fichier 3.txt <<<< COMMUN
.. fichier 7.txt
Du coup, je voudrais les regrouper dans un nouveau Dossier D. Forcément, faut que le 2e écrase le 1er lors de la copie. J'ai trouvé cette jolie commande :
cp --backup=t /home/.../fichier.txt /home/.../dossier_cible/
Mais le formatage ne me va pas. Dans le dossier D, j'ai :
fichier 3.txt
fichier 3.txt.~1~ ==>> Faudrait que ça devienne fichier 3_1.txt
fichier 3.txt.~2~ ==>> Faudrait que ça devienne fichier 3_2.txt
Sur stackexchange, un gars dit qu'on peut renommer via :
rename 's/((?:\..+)?)\.~(\d+)~$/_$2$1/' *.~*~
Sauf que ça ne fait absolument rien chez moi...
Du coup, est-ce que vous voyez comment renommer avec cette 2e étape ? Ou alors faire une seule étape mais autrement ?
Merci.
EDIT : au final, je vais m'en servir avec la commande mv mais c'est idem sauf erreur.
Dernière modification par Akatu (Le 04/08/2022, à 13:16)
KDE neon User Edition
LENOVO Ideapad L340-15IRH
Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz (8 coeurs)
512 Go SSD - (M.2 2280) PCIe 3.0 x4 - NVM Express (NVMe)
Hors ligne
#2 Le 04/08/2022, à 10:58
- iznobe
Re : [RÉSOLU] Copier et renommer avec numérotation si existant
un
mv -i
te demandera quoi faire a chaque nom de fichier en double.
un
mv -f
ecrasera le 1er fichier avec le 2eme du meme nom .
ca ne serait pas plus simple de faire une liste des fichiers en double pour en verifier le contenu ? meme nom ne veut pas forcement dire meme fichier ( contenu ) .
De plus , je pensais que c' etait impossible d' avoir des fichiers avec un nom identique dans un meme dossier ... comment en es tu arrivé là ?
Dernière modification par iznobe (Le 04/08/2022, à 10:59)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#3 Le 04/08/2022, à 11:00
- Akatu
Re : [RÉSOLU] Copier et renommer avec numérotation si existant
Je peux en avoir une trentaine de fichiers comme ça donc l'intervention manuelle à chaque fichier, je ne suis pas fan
En fait, c'est des fichiers image donc je veux comparer leur visuel.
Non, le nom est identique mais ils sont dans des dossiers séparés (A, B et C dans l'exemple) et je veux les réunir dans un 4e dossier.
KDE neon User Edition
LENOVO Ideapad L340-15IRH
Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz (8 coeurs)
512 Go SSD - (M.2 2280) PCIe 3.0 x4 - NVM Express (NVMe)
Hors ligne
#4 Le 04/08/2022, à 11:07
- iznobe
Re : [RÉSOLU] Copier et renommer avec numérotation si existant
ok d ' ou le COMUN , je comprenais pas ...
du coup ils ont le meme nom , mais probablement pas le meme contenu .
Dans ce cas , le mieux serait de faire une copie avec renommage auto , puis de les lister par nom en mettant un motif de recherche ( le : ~ ) ce qui te donnera tous les fichiers du meme nom en double exemplaire , tu n ' auras pas le 1er , mais le nom sera le meme que celui avec le ~1 2 ou 3 par exemple .
Apres visualisation , tu pourras donc renommer ou supprimer un par un .
ca me semble bien plus sûr , du coup il ne faut pas utiliser l' option -f de mv .
" mv " ne conservera pas les fichiers dans dossier A B et C , " cp " si . par securité j ' utiliserais la copie : " cp " , et lorsque je suis certain de moi , apres avoir tout traité comme il faut , une suppression des dossiers originaux .
EDIT : avec l' accent en prime
[ mode troll on : ] secure et securité c ' est de la meme famille non ? plus que sur et securité en tout cas lol .
Dernière modification par iznobe (Le 04/08/2022, à 11:12)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#5 Le 04/08/2022, à 11:10
- Watael
Re : [RÉSOLU] Copier et renommer avec numérotation si existant
secure -> sûr
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 04/08/2022, à 13:00
- MicP
Re : [RÉSOLU] Copier et renommer avec numérotation si existant
Bonjour
michel@deb114x1t:~/aeff$ ls -l fichier*
-rw-r--r-- 1 michel michel 0 4 août 13:57 'fichier 3.txt'
-rw-r--r-- 1 michel michel 0 4 août 13:57 'fichier 3.txt.~1~'
-rw-r--r-- 1 michel michel 0 4 août 13:57 'fichier 3.txt.~2~'
michel@deb114x1t:~/aeff$
michel@deb114x1t:~/aeff$ for f in fichier\ *~*~; do fich=${f%%.*}; num=${f#*~}; num=${num%~*}; mv -i "$f" "$fich"_$num.txt; done
michel@deb114x1t:~/aeff$
michel@deb114x1t:~/aeff$ ls -l fichier*
-rw-r--r-- 1 michel michel 0 4 août 13:57 'fichier 3_1.txt'
-rw-r--r-- 1 michel michel 0 4 août 13:57 'fichier 3_2.txt'
-rw-r--r-- 1 michel michel 0 4 août 13:57 'fichier 3.txt'
michel@deb114x1t:~/aeff$
Dernière modification par MicP (Le 04/08/2022, à 13:16)
Hors ligne
#7 Le 04/08/2022, à 13:13
- Akatu
Re : [RÉSOLU] Copier et renommer avec numérotation si existant
On touche au but
@iznobe
Petite précision, j'ai donné un mauvais cas de test, mea culpa ! En fait, les fichiers réels sont des PNG. Quand je parle de comparaison visuelle, c'est les voir dans le gestionnaire de fichiers. Ils ont le même nom mais le visuel (une icône) n'est pas forcément le même.
@MicP
Je suis preneur mais je n'arrive à l'appliquer à mes fichiers png :
arnaud@L340 ~/.../IR/r_icon ls
__r_icon.png __r_icon.png.~1~ __r_icon.png.~2~ __r_icon.png.~3~ __r_icon.png.~4~ __r_icon.png.~5~
arnaud@L340 ~/.../IR/r_icon
EDIT
Tout bon, merci !
for f in __r_icon*~*~; do fich=${f%%.*}; num=${f#*~}; num=${num%~*}; mv -i "$f" "$fich"_$num.png; done
Dernière modification par Akatu (Le 04/08/2022, à 13:15)
KDE neon User Edition
LENOVO Ideapad L340-15IRH
Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz (8 coeurs)
512 Go SSD - (M.2 2280) PCIe 3.0 x4 - NVM Express (NVMe)
Hors ligne
#8 Le 04/08/2022, à 13:39
- MicP
Re : [RÉSOLU] Copier et renommer avec numérotation si existant
Merci pour le retour
Dans ce cas là, on pouvait faire plus court :
for f in __r_icon*~*~; do num=${f#*~}; mv -i $f ${f%%.*}_${num%~*}.png; done
Dernière modification par MicP (Le 04/08/2022, à 13:42)
Hors ligne
#9 Le 04/08/2022, à 13:41
- Akatu
Re : [RÉSOLU] Copier et renommer avec numérotation si existant
Plus c'est long plus c'est bon
Je vais quand même tester.
Bonne fin de journée.
KDE neon User Edition
LENOVO Ideapad L340-15IRH
Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz (8 coeurs)
512 Go SSD - (M.2 2280) PCIe 3.0 x4 - NVM Express (NVMe)
Hors ligne
#10 Le 04/08/2022, à 13:43
- MicP
Re : [RÉSOLU] Copier et renommer avec numérotation si existant
Oui, il vaut mieux être prévoyant : la version longue sera plus facile à adapter à certains cas,
avant de lancer la ligne de commandes, j'insère une commande echo juste avant la commande qui devra faire la modification :
michel@deb114x1t:~/aeff$ for f in __r_icon*~*~; do fich=${f%%.*}; num=${f#*~}; num=${num%~*}; echo mv -i "$f" "$fich"_$num.png; done
mv -i __r_icon.png.~1~ __r_icon_1.png
mv -i __r_icon.png.~2~ __r_icon_2.png
mv -i __r_icon.png.~3~ __r_icon_3.png
mv -i __r_icon.png.~4~ __r_icon_4.png
mv -i __r_icon.png.~5~ __r_icon_5.png
michel@deb114x1t:~/aeff$
Comme ça, j'ai une idée de ce qu'il devrait se passer,
et si ça me va, je n'ai plus qu'à enlever la commande echo.
Dernière modification par MicP (Le 04/08/2022, à 14:18)
Hors ligne