La commande sort

Résolu/Fermé
CYG - 3 mars 2008 à 13:26
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 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

5 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
3 mars 2008 à 13:35
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
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
dindoun Messages postés 1027 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 17 février 2017 135
3 mars 2008 à 15:20
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
3 mars 2008 à 15:34
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
merci bcp; le probléme est résolu grâce à vous.
CYG
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
3 mars 2008 à 16:27
De rien ;-))
0