La commande sort

Résolu
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. Modérateur
    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 ;-))
    1. 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
      1. Modérateur
        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.
        1. 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