BASH resultats d'un find dans variables

Résolu
Bonjour,

Voila mon soucis.

J'aimerais envoyé le resultat d'une commande find dans une variable.Jusque la rien de sorcier si ce n'est qu'il se peut que cette commande ( find) me retourne plusieurs resultats et j'aimerais que chaque resultat aille dans 1 variable differente , ex: resultat 1 --> var1, si il existe un 2eme resullat du find --> var2, etc...

merki.
Configuration: Linux Mandriva
Firefox 1.5.0.7

10 réponses

  1. Modérateur
    Salut,

    un exemple
    find /chemin -name "*.txt" | while read line; do var[$i]=$line; echo "${var[$i]}";i=$((i+1)); done
    --
    lami20j
    2
    1. aie..personne?

      J'espere que c'est faisable au moins!

      le but est de localiser un fichier dans une arborescence ( possible presence de ce fichier dans plusieurs endroit de l'arborescence) et par la suite de mettre un autre fichier aux cotés du fichier préalablement localiser. pas claire non?
      1
      1. houla..lol

        tu pourrais me detailler un peu les differentes étapes stp?

        D'avance , merci.
        0
        1. Voila a peu pres ou j'en suis ..en gros pas loin..desolé je debute.

          But:
          Mettre dans le meme repertoire que tous les fichiers .gif un fichier nommé hihihihi et affecté a ce fichier hihihihi utilisateur=Nom d'un repertoire ou se trouve un fichier .m4 et groupe=users

          #!/bin/bash

          find /home/XXXX -type f -name *.m4 | while read line ;
          do
          var {$nom}=`basename {$line}`
          find /home/XXXX/yyy -name *.gif | while read LINE ;

          do
          cd $LINE ; cp /home/XXXX/hihihihi . ; chown $nom:users hihihihi
          done
          done

          cela ne marche pas car il me retourne a l'ecran : " find: /home/XXXX/yyy : Aucun fichier ou répertoire de ce type
          ./script_test: line 5: var: command not found

          N'hesitez pas à m'aider lol..j'en ai besoin je crois.
          0
          1. Arff pour ma 1ere remontée d'erreur c'etait ( comme toujours) de ma faute..une faute de frappe dans le chemin. desolé...je modifie et je retest. Merci encore
            0
            1. Bon evidement la, je lui demande de faire un " cd $LINE" alors que LINE est le chemin du fichier et pas du repertoire qui heberge ce fichier..arffff comment faire?
              0
              1. J'ai un autre probleme avec ce script.... je fais une boucle while dans une autre boucle while.or j'ai besoin d'une variable dans ma 2eme boucle qui aurait été initialisée dans ma 1ere boucle :

                find ......... | while read line ; do
                ... .... ... ...
                find xxxxxx | while read truc ; do
                machin=$( basename $line)

                done
                done

                comment faire pour utiliser ma variable line initialisée dans ma boucle pricipale , dans ma boucle interne ?

                merciiiiiiiii
                0
                1. Voila je progresse...;

                  J'aimerais pouvoir exporter ma variable $nom issue de mon premier while dans mon while fils...

                  j'ai esayer export nom mais ca n'a pas l'air de fonctionner
                  0
                  1. Contributeur
                    hello
                    export nom ou export nom=valeur
                    affiche ton script
                    0
                    1. Meric ca fonctionne avec export nom

                      Merci bcp
                      0