BASH resultats d'un find dans variables

Résolu
ponpon27 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   -  
ponpon27 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

10 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

un exemple
find /chemin -name "*.txt" | while read line; do var[$i]=$line; echo "${var[$i]}";i=$((i+1)); done
--
lami20j
2
ponpon27 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   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
ponpon27 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   1
 
houla..lol

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

D'avance , merci.
0
ponpon27 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ponpon27 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   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
ponpon27 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   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
ponpon27 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   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
ponpon27 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
export nom ou export nom=valeur
affiche ton script
0
ponpon27 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   1
 
Meric ca fonctionne avec export nom

Merci bcp
0