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 02/06/2008, à 12:08

traaf

banque d'icones (pb de copie)

Salut
pour un projet en cours, je cherche à regrouper une copie de toutes les icônes dans un seul répertoire, pour les avoir toutes visibles d'un seul coup d'œil sans devoir explorer une succession de répertoires

le problème, c'est que forcément elle s'appellent toutes pareil, ces icônes, et que nautilus ne me propose que de les écraser ou d'ignorer la copie...

il doit y avoir un moyen d'effectuer une copie en modifiant le nom si un fichier utilisant le même nom est déjà présent, non ?


Vault106, musique libre, enjoy it /!\

Hors ligne

#2 Le 02/06/2008, à 15:20

Mikeforever

Re : banque d'icones (pb de copie)

Je pencherais pour l'usage d'un script qui modifie tes noms de fichiers.
Ce script pourrait pour avoir des noms différents s'appuyer peut-être sur le nom du dossier contenant les fichiers à copier ?

Ce ne sont que des idées que je lance pour solutionner ton problème.

Hors ligne

#3 Le 02/06/2008, à 16:39

scholi

Re : banque d'icones (pb de copie)

for x in `find dossier_qui_contient_les_images`
do
if [[ "`file $x | grep image`" ]]
then
cp $x dossier_destination/`echo $x | sed -e 's/\//_/g'`
fi
done

ça marche nickel, mais il y a peut-être plus simple...

Dernière modification par scholi (Le 02/06/2008, à 16:40)


S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

Hors ligne

#4 Le 03/06/2008, à 16:37

traaf

Re : banque d'icones (pb de copie)

ca marche

for x in `find dossier_qui_contient_les_images`
do
if [[ "`file $x | grep image`" ]]
then
cp $x dossier_destination/`echo $x | sed -e 's/\//_/g'`
fi
done

je comprends ton script, sauf la partie sed

sed -e 's/\//_/g'`

(j'arrive pas a saisi comment marche cette commande)
tu peux expliciter STP ??


Vault106, musique libre, enjoy it /!\

Hors ligne

#5 Le 03/06/2008, à 20:35

scholi

Re : banque d'icones (pb de copie)

ouais pas de prob. Sed est l'ancêtre de awk si jamais tu connais. Il permet de faire des transformations dans les fichiers et en particulier des remplacements ou des suppression de ligne à l'aide d'expression rationnel (regexp). L'option -e indique que ce qui suit est le scripte à lancer pour le fichier qui suit ou dans notre cas sur le pipe.

sed -e 's/blabla/trucmuche/' remplace simplement toutes les occurrences de blabla par trucmuche. Mais ça marche aussi avec des expressions rationnel.

sed -e 's/([a-z\._]+@[a-z]+\.[a-z]+)/<a href="mailto:\1">\1<\/a>/g'

va remplacer toutes les occurrences d'adresse e-mail par un lien HTML vers l'adresse.

dans notre cas s/\//_/ va remplacer le caractère / par _. le / étant le signe qui représente la séparation des dossiers. Il faut mettre un anti-slash devant pour qu'il comprenne que c'est bien le caractère / et non la séparation entre les substitutions.

Le g final est un flag qui lui dit de remplacer toutes les occurrences sur la même ligne et non seulement la première.

si tu as Images/Icones/Aqua il faut bien qu'il remplace les deux / par des _ et non seulement le premier.

Pour plus d'info http://fr.wikipedia.org/wiki/Sed_(logiciel)


S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

Hors ligne