bonjour,
je voudrai savoir s'il est possible de créer un script qui parcours un répertoire pour pouvoir effectuer des tests sur les fichiers de ce répertoire.
merci de votre
bonjour,
je voudrai savoir s'il est possible de créer un script qui parcours un répertoire pour pouvoir effectuer des tests sur les fichiers de ce répertoire.
merci de votre
Avec find en spécifiant le type de fichier que tu veux manipuler et avec --exec et une commande, tu devrais pouvoir y arriver sans trop te fatiguer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part man find
avec le find j'arrive effectivement à stocker tous les fichiers dans une variable, je peux certainement travailler dessus aprés. mais existe il pas une sorte de fonction permettant de lire les fichiers d'un repertoire grace à un tableau ou autre? (un peu comme dans d'autre langages)
comprend pas ta demande làEnvoyé par dams78
tu veux faire quoi tres exactement ?
si il s'agit de faire une action sur les fichiers re-voir-man-page
exemple qui vire les fichiers trop vieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part find ....................... -exec action {} \;
Code : Sélectionner tout - Visualiser dans une fenêtre à part find . -mtime +365 -exec rm {} \;
sinon précise ta demande...et c'est quoi cette histroire de lire un repertoire comme un tableau ?
tu veux faire un tableau de variables ?
si oui alors
et ainsi tu remplis un tableau nomé table avec les fichiers de plus de 365jours.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 test:$ cpt=0 && for i in `find . -mtime +365` do $table[cpt]=`echo $i` cpt=`"echo $cpt + 1" | bc` done test:$
tu pouras alors les appeler par $table[n°du fichier] par la suite.
sinon tu peux utiliser le find comme une liste (avec une boucle for) ou rediriger le resultat dans un fichier que tu peux ensuite lire ou en extraire que certains etc.... par exemple pour extraire que certains fichiers il te reste alors à faire comme ça
pour traiter que les fichier qui commance par a.b avec un chiffre (sauf 0) entre les deux....
Code : Sélectionner tout - Visualiser dans une fenêtre à part for i in `grep -i a[1-9]b* liste` ; do actionsurfichiers ; done
si rien de tout ça ne correspond à ta demande alors reformule et de façon tres tres tres claire.
alors ce que je veux faire c'est effectivement créer un tableau contenant tous les fichiers d'un repertoire donné, si j'utilise le code que tu m'as donné
j'ai ces messages d'erreurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 rep=/home/damien/archives/script/essai/ cpt=0 && for i in `find $rep` do $table[cpt]=`echo $i` cpt=`"echo $cpt + 1" | bc` done
./diff.sh: line 7: [cpt]=/home/damien/archives/script/essai/: Aucun fichier ou répertoire de ce type
./diff.sh: line 8: echo 0 + 1: command not found
./diff.sh: line 8: bc: command not found
./diff.sh: line 7: [cpt]=/home/damien/archives/script/essai/bidon.txt: Aucun fichier ou répertoire de ce type
./diff.sh: line 8: echo + 1: command not found
./diff.sh: line 8: bc: command not found
je suis (vous l'avez deviné) trés débutant dans les scripts shell
c'est une boulette c'est pas $variable=..... mais variable=.....
doncmarchera mieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 linux:~ # cpt=0 linux:~ # for i in `find $rep -type f`; do table[$cpt]=`echo $i` > cpt=`expr $cpt + 1`; done linux:~ # echo ${table[424]} ./gfx/sprites/player_attack_5_1f.bmp
bonsoir,
je réouvre ce post parceque j'ai remarqué que lorsque les fichiers possèdes des espaces le find les considère comme des retours chariot
par exemple le fichier toto tata.tar
va donner avec ce code :
le résultat suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 cpt=0 for i in `find $repertoire -type f` do echo $i files[$cpt]=`echo $i` cpt=$(($cpt+1)) done
$>toto
tata.tar
alors que moi je voudrai qu'une ligne représente un fichier
merci de votre aide
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager