IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Parcourir un répertoire avec un script


Sujet :

Linux

  1. #1
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut Parcourir un répertoire avec un script
    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

  2. #2
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    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.


  3. #3
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut
    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)

  4. #4
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    Citation Envoyé par dams78
    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à
    tu veux faire quoi tres exactement ?

    si il s'agit de faire une action sur les fichiers re-voir-man-page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ....................... -exec action {} \;
    exemple qui vire les fichiers trop vieux

    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
    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:$
    et ainsi tu remplis un tableau nomé table avec les fichiers de plus de 365jours.

    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in `grep -i a[1-9]b* liste` ; do actionsurfichiers ; done
    pour traiter que les fichier qui commance par a.b avec un chiffre (sauf 0) entre les deux....


    si rien de tout ça ne correspond à ta demande alors reformule et de façon tres tres tres claire.

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut
    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é
    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
    j'ai ces messages d'erreurs:
    ./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

  6. #6
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    c'est une boulette c'est pas $variable=..... mais variable=.....

    donc
    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
    marchera mieux

  7. #7
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut
    impécable ca marche
    merci beaucoup!!!!

  8. #8
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut
    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 :
    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
    le résultat suivant
    $>toto
    tata.tar

    alors que moi je voudrai qu'une ligne représente un fichier

    merci de votre aide

Discussions similaires

  1. [langage] Problème avec un script ! :(
    Par shinux2004 dans le forum Langage
    Réponses: 6
    Dernier message: 16/02/2005, 15h12
  2. Imprimer un fichier texte avec un script vbs
    Par Persons dans le forum Windows
    Réponses: 3
    Dernier message: 23/12/2004, 16h47
  3. pb avec un script sur mozilla
    Par grospaulo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/12/2004, 16h36
  4. Pb d'execution de requete avec un script php
    Par ythierrin dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/08/2003, 14h34
  5. Problème avec un script ftp
    Par doohan dans le forum Linux
    Réponses: 2
    Dernier message: 25/06/2003, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo