Bonjour,
Je reviens vers vous sur cette problématique. La commande ci-dessus ne répond pas aux besoins après des tests réels.
Voici une archive qui contient un vrai cas de test. J'ai un dossier avec le résultat que je souhaite obtenir mais je détaille plus bas mon besoin.
Si je lance la commande ci-dessous dans le dossier Icones_existantes, voilà ce que ça donne :
Le fichier 1.png doit être renommé
1.png.nouveau.
Le besoin :
- je travaille sur des packs d'icônes pour mobile. J'ai des icônes existantes et via des demandes d'utilisateurs, de nouvelles icônes doivent être intégrées à l'existant. Sauf que certaines nouvelles icônes ont le même nom que des existantes, je cherche donc à les réunir dans un même dossier pour les visualiser et les comparer.
- dossier "
Icones_demandees" : ce sont des fichiers d'entrée qui proviennent de nouvelles demandes d'utilisateur et qui ont généralement l'extension PNG (mais ça peut être JPG/JPEG). Lors du déplacement dans le dossier de comparaison "
Resultat_souhaite", aucun renommage n'est fait.
- dossier "
Icones_existantes" : icônes existantes du pack. Lors du déplacement vers "
Resultat_souhaite", l'extension de ces icônes doit être renommée en
.existant pour éviter les écrasements de fichiers et pour pouvoir facilement les remettre dans leur dossier d'origine une fois la comparaison faite.
-
listing.txt : c'est là que je liste les noms des fichiers à comparer, peu importe leurs extensions
Aujourd'hui, voilà mon enchaînement de commandes qui fonctionnait avec bash :
Code : Tout sélectionner
1. mkdir resultat_souhaite
2. touch resultat_souhaite/listing.txt
3. xsel -b > listing.txt (copie du contenu du presse-papier)
4. cd Icones_existantes
5. find $(<../listing.txt) -name "*.webp" -exec sh -c 'mv "$1" "${1%.webp}.webp.existant"' _ {} \; <<<<<< renommé les webp en web.existant si le nom colle avec celui du fichier listing.txt
6. find $(<../listing.txt) -name "*.png" -exec sh -c 'mv "$1" "${1%.png}.png.existant"' _ {} \; <<<<<< idem pour les png (il ne peut y avoir que ces 2 extensions dans le dossier Icones_existantes)
7. mv *.existant ../Resultat_souhaite
8. cd ../Icones_demandees
9. mv $(<../listing.txt) ../Resultat_souhaite
10. rm ../listing.txt
11. cd ../Resultat_souhaite
Note : j'ai adapté mes commandes à ce cas test donc j'espère ne pas avoir fait de boulette
Les commandes 5, 6 et 9 sont celles qui me posent problème.
J'espère que mon explication est claire. Elle est un peu longue par contre
Un grand merci par avance à ceux qui pourraient se pencher sur mon cas.