Posez votre question Signaler

La commande sort [Résolu]

CYG - Dernière réponse le 3 mars 2008 à 16:27
Bonjour,
dans un repértoire
j ai les sous répertoires:
19920505_19950901
19920505_19970103
19920505_19971219
19920505_19991015
19920505_20000128
19920714_19991015
19920714_20050401
19920714_20050819
19920818_19991015
19920818_20050401
19920818_20050819
.
.
et les sous répertoires
19920505
19920714
19920818
.
.
je veux copier dans le sous répertoire 19920505 le fichier "doris1.in" qui est dans les sous répertoires qui commencent par 19920505_......., (remarque tous les sous répertoires dont le nom commence par 19920505 contient le même fichier "doris1.in"), et ainsi de suite pour les autres sous répertoires 19920714, 19920818,.....
merci d avance
CYG
Lire la suite 

La commande sort »

6 réponses
Réponse
+0
moins plus
Salut,

Pas sûr d'avoir tout pigé là ;-\

Déjà que vient faire la commande "sort" dans ton histoire ?

Ensuite, si tu veux copier dans un sous-répertoires (sans underscore si j'ai bien compris) tous les fichiers "doris1.in" contenus dans les sous-répertoires (avec underscore) qui commencent par le même préfixe (le nom du sous-répertoires sans underscore), va y avoir problème d'écrasement du dit fichier ou de redondance (options "-b" de la commande "cp"), non ?

PS. Regarde si tu as la commande "tree" d'installer sur ton système.
CYG - 3 mars 2008 à 14:13
salut;
désolé, au lieu d'écrire "cp" je me suis trompé et j ai mi "sort"
non j ai pas la commande "tree" sur ma machine, ce que je veux c'est de copier le fichier doris1.in à partir de l un des sous répertoires dans le préfixe 19920505_.... (juste une copie, c à d si je copie le fichier doris1.in du sous répertoire 19920505_19950901 ça suffit, c est pas la peine de faire une autre copie à partir du sous répertoire 19920505_19970103, parceque tous les sous répertoires dont le préfixe 19920505_ contiennent le même fichier doris1.in) et la coller dans le sous répertoire 19920505, ainsi de suite pour tout les autres sous répertoire.
j espére que maintenant c est clair

merci d avance
CYG
Ajouter un commentaire
Réponse
+0
moins plus
for i in `ls |grep _` ; do cp $i/* `echo $i|cut -d'_' -f1` ; done

for i in `ls |grep _` : recherche dans le répertorie courant tout ce qui contient _ ( les répertoires )

cp $i/* les fichiers

`echo $i|cut -d'_' -f1` affiche ici tout ce qui est avant _

pour avoir une idée de ce qui va se passer à l'avance , tu peux taper


for i in `ls |grep _` ; do echo $i/* `echo $i|cut -d'_' -f1` ; done
Ajouter un commentaire
Réponse
+0
moins plus
for i in $(ls -d *_* | sort -t_ -k 1.1,1.8 -u); do echo "cp ${i}doris1.in ${i/_*/}";done
Enlève le "echo" et les guillemets autour si c'est bon ;-))
Ajouter un commentaire
Réponse
+0
moins plus
merci bcp; le probléme est résolu grâce à vous.
CYG
Ajouter un commentaire
Réponse
+0
moins plus
De rien ;-))
Ajouter un commentaire
Ce document intitulé « la commande sort » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook