Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile
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 tongue

[ mode troll on : ] secure et securité c ' est de la meme famille non ? big_smile 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 smile

@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 smile

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 big_smile
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