Extraire les noms des fichiers pour les utiliser en variable

Extraire les noms des fichiers pour les utiliser en variable - Shell/Batch - Programmation

Marsh Posté le 18-02-2011 à 10:42:17    

Bonjour à tous :)
Alors je suis un bon noob de Shell, je précise (mon domaine c'est plus le Java ). J'ai compris comment cela fonctionnait mais là j'ai du mal à m'en sortir car je ne connais pas les fonctions linux qu'il faudrait que j'utilise donc si vous pouviez m'aider...
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  :whistle: ) mais au moins me guider dans les fonctions à utiliser car pour l'instant je sèche de ce coté là :D
 
Merci :jap:


Message édité par Sylver--- le 18-02-2011 à 10:42:47

---------------
Aloha
Reply

Marsh Posté le 18-02-2011 à 10:42:17   

Reply

Marsh Posté le 18-02-2011 à 11:37:45    

Une solution que je vois est de faire un "find . -type f -name'*.zip'"
qui te donnera le chemin complet vers les fichiers. Ensuite j'utiliserais awk pour ne garder que le nom du dossier et du fichier sans les "/"

Reply

Marsh Posté le 18-02-2011 à 14:38:02    

Le find est effectivement bien fait pour ca :

 
Code :
  1. find . -type f -name "*.zip" -printf "%P\n" | sed 's#/# #'
 

En considérant que tu es placé dans le répertoire A
dans le printf no peux aussi utiliser le %h pour n'avoir que le répertoire et le %f que le nom de fichier. Mais le %h prends le chemin absolu, donc préfixé par ./ ce qui est embetant. Je n'ai pas trouvé d'affichage direct du sous-répertoire d'ou l'utilisation du sed.


Message édité par Nukolau le 18-02-2011 à 14:39:24
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed