La commande sort

Résolu
CYG -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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
Configuration: Windows 2003
Internet Explorer 6.0

5 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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.
    0
    1. CYG
       
      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
      0
  2. dindoun Messages postés 1047 Statut Membre 135
     
    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
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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 ;-))
    0
  4. CYG
     
    merci bcp; le probléme est résolu grâce à vous.
    CYG
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    De rien ;-))
    0