|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
chiheb ammar Inscription : mai 2010 Messages : 13 ![]() |
Bonjour.
En fait je suis en trains de faire un projet en shell (faire le tri du contenu d'un répertoire). Le problème c'est de faire ce tri sans utiliser la commande sort et listé la contenu de la répertoire sans la commande ls. Il me faudrait donc construire les commandes sort et ls. Merci de m'aider. |
|
|
01
|
|
|
#2 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 375 ![]() |
De rien
|
|
|
21
|
|
|
#3 |
![]() ![]() Bernard SIAUDEnseignant Inscription : novembre 2003 Messages : 4 400 ![]() |
Cette commande est originale, ouvre la voie du projet. Mais, on ne doit pas faire son exercice à sa place
__________________
Modérateur Mandriva Linux Amicalement VOOotre Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org Mes tutoriels |
|
|
00
|
|
|
#4 |
|
chiheb ammar Inscription : mai 2010 Messages : 13 ![]() |
Je suis en impasse.
Aidez-moi s il vous plais. Pouvez-vous me mettre sur la voie ? (merci) |
|
|
00
|
|
|
#5 |
![]() ![]() Bernard SIAUDEnseignant Inscription : novembre 2003 Messages : 4 400 ![]() |
Je ne connais pas grand chose en script shell, mais, as-tu essayé la commande indiquée ? Elle liste tous les fichiers et répertoires du dossier; Ce sera par là que tu va remplir une liste avec tous les éléments.
Après un if [ -f "$1" ] peut te dire si c'est un fichier un elif [ -r "$1" ] un répertoire. Ceci dit, si un nom contient un espace, je ne vois comment faire... Peut être alors en code un avec des tests dans le for.
__________________
Modérateur Mandriva Linux Amicalement VOOotre Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org Mes tutoriels |
|
|
10
|
|
|
#6 |
|
chiheb ammar Inscription : mai 2010 Messages : 13 ![]() |
Où sont les commandes indiqué s'il vous plait ? (merci)
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 375 ![]() |
Bon écoutes si tu veux de l'aide il va falloir faire un effort pour t'exprimer plus clairement et poser des questions plus précises.
Est-ce que tu sais déjà répondre aux questions suivantes : - Dois-tu afficher tous les fichiers ou seulement certains fichiers (pense aux fichiers qui commencent par un point par exemple) - Quelles informations veux-tu afficher - Sur quel critère veux-tu trier - Dois-tu proposer des flags pour permettre à l'utilisateur de choisir les fichiers à afficher, les informations à afficher, et le critère de tri Une fois que tu sais répondre à ces questions, lance toi et commence à coder quelque chose. Si tu bloques sur un problème particulier, pose une question sur ce problème particulier. J'ai la vague impression de passer plus de temps à te répondre que tu n'as passé de temps à réfléchir à ton problème. |
|
|
20
|
|
|
#8 |
|
chiheb ammar Inscription : mai 2010 Messages : 13 ![]() |
Ce je sait, c'est faire un trie avec sort et ls pour lister.
Je suis bloqué parce que je n'ai pas le droit de les utiliser... Il y a t-il un autre moyen ? (merci) |
|
|
00
|
|
|
#9 | |||
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 971 ![]() |
Bonsoir.
As-tu seulement essayé de produire quelque chose à partir des pistes qui t'ont été données ? Citation:
Citation:
Citation:
Cordialement, Idriss |
|||
|
00
|
|
|
#10 |
|
chiheb ammar Inscription : mai 2010 Messages : 13 ![]() |
il ya t il une idée pour faire un trie décroissane suivant le nom des entrée
par exemple dans la repertoire toto il ya titi.txt et fic.txt c est que je voudrai faire c est d afficher l arborecence de repertoire toto avec le trie biensur et sans la commande sort comme ca ./home/shell/projetshell/toto/titi.txt ./home/shell/projetshell/toto/fic.txt le début c est toujours flou juis sur que ca ira merci |
|
|
00
|
|
|
#11 |
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 971 ![]() |
Bonjour.
Une piste : bash gère les tableaux à une dimension. Tu peut donc, grâce à ce que troumad et matatan t'ont donné, placer les noms des fichiers d'un répertoire dans un tableau. Tu parcourir ce tableau (et afficher son contenu) en commençant par la fin (car il sera déjà trié dans l'ordre croissant). Cordialement, Idriss |
|
00
|
|
|
#12 | ||
|
chiheb ammar Inscription : mai 2010 Messages : 13 ![]() |
Voila j'ai une essai : un tri suivant le nom des entrées, en gros j'ai deux fichier
fic.txt qui contient le le contenu de ls et le deuxième le trie de fic.txt pour parcourir le fichier fic.txt j'ai utilisé for %f %i in(fic.txt) do (j'ai trouvé ça dans les forums) et je commence à comparé un par par un et je dirige le plus petit vers fichier Trier.txt (je voudrai faire un trie décroissant) et à la fin j'affiche le fichier less.txt ça ne marche pas ! Code :
|
||
|
|
00
|
|
|
#13 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 057 ![]() |
|
|
|
10
|
|
|
#14 | ||
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 971 ![]() |
Bonjour.
Tu te complique la tâche avec ces fichiers je pense ... la solution est toute simple. J'ai simplifié ce que je t'avais proposé comme solution : tu parcours un répertoire (placé en paramètre ou saisis comme tu le souhaites) et tu place les valeurs dans un tableau (grâce à la boucle qu'on t'as déjà donné). Ensuite, tu affiche les valeurs du tableau en partant de la fin de celui-ci ... Voici un exemple simple : Code :
Idriss |
||
|
00
|
|
|
#15 | ||
|
chiheb ammar Inscription : mai 2010 Messages : 13 ![]() |
j ai une idée c est de utiliser deux listes
Principe: on parcours la liste de départ et on cherche le plus grand élément Dès qu'on a trouvé le plus grand élément, on le stocke dans la seconde liste et on le supprime de la première et on recommence l'algo. Au second parcours, le plus grand élément n'étant plus dans la liste de départ, il ne sera pas pris en compte et on aura le 2° plus grand élément qui sortira. Lui-même étant ajouté à la liste 2, au 3° parcours on aura le 3° plus grand élément qui sortira etc etc etc. On s'arrête quand la liste 1 est vide. La liste 2 contient alors tous les éléments dans l'ordre... comme ca Code :
|
||
|
|
00
|
|
|
#16 | ||||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 057 ![]() |
Bonjour,
Code :
Code :
|
||||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com