|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 105 ![]() |
Bonjour à tous
Alors je suis un bon noob de Shell, je précise (mon domaine c'est plus le Java Donc j'ai un rep A avec plein de sous rep, Ab, Ac, Ad, etc. Dans chaque sous-rep je peux avoir, 0 ou X fichiers zip. J'aimerais dans le script, parcourir l'ensemble de ces sous rep et stocker dans un tableau le nom du sous rep ainsi que le nom du fichier trouvé. Donc en gros qu'à la fin, j'ai en variable un tableau qui contiendra : Ab toto.zip Ab maman.zip Ac haha.zip Ae alphone;zip Ae baba.zip etc etc, pour qu'ensuite je puisse faire des traitements sur chacun de ces fichiers Je ne demande pas une solution complète au problème (encore que si vous avez ça sous la main) mais au moins me guider dans les fonctions à utiliser car pour l'instant je sèche de ce coté là Merci |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Étudiant Inscription : février 2010 Messages : 670 ![]() |
Il va te falloir utiliser "ls -l" qui renvoie une liste des fichiers présents dans le dossier (un par ligne) et "cut -f" qui permet de découper une ligne.
N'ayant pas ecrit de scripts depuis longtemps, je ne pourrais guère t'aider plus. Il me semble également qu'il existe une option de ls qui permet de n'afficher que les répertoires, qui pourrait t'être utile pour les visiter (avec cd). Edit : Dans un terminal, man nom_de_commande pour avoir des infos sur la commande en question |
|
|
01
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
regarde plutôt du côté de find avec cette commande, tu trouves les fichiers que tu cherches, et tu peux exécuter des commandes :regarde la page de man. |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 105 ![]() |
Hm merci, la commande find devrait bien m'aider oui
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 105 ![]() |
Donc quand j'utilise
find . -name "*.zip" il me sort une liste de tous les sous rep avec les fichiers zip, good. De type : ./Ab/toto.zip ./Ac/tata.zip etc Si j'ai bien compris le fonctionnement de find, à chaque fois qu'il trouve un fichier il effectue l'action demandé. Donc si j'utilise : find . -name "*.zip" -exec test il executera la commande test pour chaque fichier trouvé. Ma nouvelle question serait donc, comment parser le fichier trouvé pour pouvoir utiliser le nom du rep et le nom du fichier en arguments à test ? Je ne comprend pas cette phrase dans le man de find pour -exec : "La chaîne `{}' est remplacée par le nom du fichier en cours de traitement, et ceci dans toutes ses occurrences, pas seulement aux endroits où elle est isolée, comme c'est le cas avec d'autres versions de find." Merci |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 105 ![]() |
A priori le mieux serait que j'utilise un
for myfile in `find blblbalblabla` do traitement done Et dans le traitement je fais un grep, je tests les param et j'appele la commande ! Stay tuned |
|
|
00
|
|
|
#7 | |||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Citation:
Peut être un truc du genre te conviendrait-il... Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|||
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 105 ![]() |
Merci, je vais investiguer ça en détail
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com