Rechercher : dans
Par :

La commande sort

Dernière réponse le 3 mar 2008 à 16:27:50 CYG, le 3 mar 2008 à 13:26:54 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « la commande sort » dans :
Liste des commandes Windows VoirRemarques : Certaines commandes sont dangereuses (l’exemple de SYSKEY) et peuvent causer des problèmes pouvant conduire au formatage. D’autres commandes ne sont pas exécutables sous Windows XP ou des versions antérieures, je ne les ai pas...
Commandes IP relatives aux réseaux sous Windows VoirIl est parfois très utile de connaître les commandes IP, pour analyser voire configurer ses réseaux TCP/IP. Voici la liste de ces commandes à utiliser dans une fenêtre DOS...
[MS-Dos] Commandes DOS de base VoirCes commandes sont des commandes de base que vous pouvez utiliser dans un prompt DOS, par exemple, sur une disquette de démarrage. Pour obtenir plus d'informations sur ces commandes, tapez (dans un prompt DOS), le nom de votre commande suivi de...
Commandes Linux VoirTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau...
Commandes UNIX VoirTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...
Les commandes AS/400 VoirLes commandes de l’AS/400 Il existe environ un millier de commandes dans l'OS/400, regroupées sous le nom de « Langage de Contrôle ». Un utilisateur pourra les lancer depuis la ligne Option ou Commande située au bas de l'écran, quand celle-ci est...

1

jipicy, le 3 mar 2008 à 13:35:21

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.
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

CYG, le 3 mar 2008 à 14:13:25

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

Répondre à CYG

3

dindoun, le 3 mar 2008 à 15:20:38

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

Répondre à dindoun

4

jipicy, le 3 mar 2008 à 15:34:26

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 ;-))

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

5

CYG, le 3 mar 2008 à 16:26:45

Merci bcp; le probléme est résolu grâce à vous.
CYG

Répondre à CYG

6

 jipicy, le 3 mar 2008 à 16:27:50

De rien ;-))
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy
Collection CommentÇaMarche.net