[SH] Boucle For Dossier/Fichiers
ZZ2F3
Messages postés
40
Date d'inscription
Statut
Membre
-
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je voudrais avoir un petit peu d'aide quant à mon soucis en Shell.
Je voudrais faire une boucle sur des noms de fichiers contenus dans un dossier connu. Ce dossier ne contient que des fichiers à traiter et en contient forcément.
Est-il possible de faire une boucle sur les fichiers du genre :
Pour chaque fichier du dossier /home/zz2f3... Faire :
Blablabla
Je viens de penser à une éventuelle solution:
Serait-il possible de stocker le résultat de la commande ls sur ce dossier dans une variable (ou un tableau?) pour pouvoir utiliser ces noms de fichiers par la suite?
Merci d'avance à ceux qui prendront le temps (et la peine^^) de me répondre!
Bonne fin de journée.
Je voudrais avoir un petit peu d'aide quant à mon soucis en Shell.
Je voudrais faire une boucle sur des noms de fichiers contenus dans un dossier connu. Ce dossier ne contient que des fichiers à traiter et en contient forcément.
Est-il possible de faire une boucle sur les fichiers du genre :
Pour chaque fichier du dossier /home/zz2f3... Faire :
Blablabla
Je viens de penser à une éventuelle solution:
Serait-il possible de stocker le résultat de la commande ls sur ce dossier dans une variable (ou un tableau?) pour pouvoir utiliser ces noms de fichiers par la suite?
Merci d'avance à ceux qui prendront le temps (et la peine^^) de me répondre!
Bonne fin de journée.
Configuration: Windows XP Firefox 2.0.0.14
3 réponses
-
ce n'est pas une syntaxe csh, mais sh, ksh ou bash
remplacer la première ligne par #!/bin/bash ou #!/bin/ksh -
Salut,
[tmpfs]$ ls rep/ [tmpfs]$ tree . `-- rep |-- fich1.txt |-- fich2.txt |-- fich3.txt |-- fich4.txt |-- fich5.txt |-- fich6.txt |-- fich7.txt |-- fich8.txt `-- fich9.txt 1 directory, 9 files [tmpfs]$ for fich in rep/*; do echo "fichier trouvé dans le répertoire \"rep\" : " $(basename $fich); done fichier trouvé dans le répertoire "rep" : fich1.txt fichier trouvé dans le répertoire "rep" : fich2.txt fichier trouvé dans le répertoire "rep" : fich3.txt fichier trouvé dans le répertoire "rep" : fich4.txt fichier trouvé dans le répertoire "rep" : fich5.txt fichier trouvé dans le répertoire "rep" : fich6.txt fichier trouvé dans le répertoire "rep" : fich7.txt fichier trouvé dans le répertoire "rep" : fich8.txt fichier trouvé dans le répertoire "rep" : fich9.txt [tmpfs]$;-))
-
Bonjour,
Désolé de la réponse tardive mais j'ai du faire face à d'autres problèmes désormais résolus en attendant depouvoir tester cette solution.
Malheureusement je n'obtiens pas de résultats mais plutot des erreurs :
> ess
Swarm 2.2 (CVS 20060612)
Mon Jul 14 15:02:11 BST 2008
NOTICE: Invoking /software/sunstudio11/SUNWspro/bin/f90 -f77 -ftrap=%none fich in /home/rb6141/30june/Essai/essai1 /home/rb6141/30june/Essai/essai2 /home/rb6141/30june/Essai/essai3 /home/rb6141/30june/Essai/essai4 /home/rb6141/30june/Essai/essai5
ld: fatal: file fich: open failed: No such file or directory
ld: fatal: file in: open failed: No such file or directory
ld: fatal: file /home/rb6141/30june/Essai/essai1: unknown file type
ld: fatal: File processing errors. No output written to a.out
fich: Undefined variable
Mon script est seulement :#!/usr/bin/csh for fich in /home/rb6141/30june/Essai/*; do echo "fichier trouvé dans le répertoire Essai : " $fich; done
Le contenu de ce dossier /home/rb6141/30june/Essai est 5 fichiers essai&, essai2, essai3, essai4, essai5.
Merci d'avance =)
Bonne journée en ce 14 juillet!