[SH] Combinaisons fichiers dans un dossier
Résolu
ZZ2F3
Messages postés
40
Date d'inscription
Statut
Membre
-
ZZ2F3 Messages postés 40 Date d'inscription Statut Membre -
ZZ2F3 Messages postés 40 Date d'inscription Statut Membre -
Bonjour,
J'aurais besoin de savoir comment faire pour réaliser 2 boucles imbriquées sur des fichiers contenus dans un dossier.
En plus clair (lol), j'aimerais en partant d'un dossier 'Essai' contenant Essai1, Essai2, Essai3, Essai4 pouvoir travailler sur les (4*3/2) 6combinaisons possibles {(Essai1,Essai2),(Essai1,Essai3),(Essai1,Essai4),(Essai2,Essai3),(Essai2,Essai4),(Essai3,Essai4)}
Rq : Les combinaisons sont en faites les paires possibles de ce fichiers, je ne prends pas les doublons et la paire (Essai2,Essai3) est identique à la paire (Essai3,Essai2)
Je sais comment réaliser une boucle sur les fichiers contenus dans un dossier [Merci Jipicy ;)] :
for fich in /home/Essai/*; do echo "fichier trouvé dans le répertoire Essai : " $fich; done
Seulement j'aimerais faire une double boucle du genre :
J'espère avoir été assez clair et si ce n'est pas le cas n'hésitez pas à me demander des éclaircissements!
Merci par avance de votre précieuse aide!
Bonne fin de journée
R.
J'aurais besoin de savoir comment faire pour réaliser 2 boucles imbriquées sur des fichiers contenus dans un dossier.
En plus clair (lol), j'aimerais en partant d'un dossier 'Essai' contenant Essai1, Essai2, Essai3, Essai4 pouvoir travailler sur les (4*3/2) 6combinaisons possibles {(Essai1,Essai2),(Essai1,Essai3),(Essai1,Essai4),(Essai2,Essai3),(Essai2,Essai4),(Essai3,Essai4)}
Rq : Les combinaisons sont en faites les paires possibles de ce fichiers, je ne prends pas les doublons et la paire (Essai2,Essai3) est identique à la paire (Essai3,Essai2)
Je sais comment réaliser une boucle sur les fichiers contenus dans un dossier [Merci Jipicy ;)] :
for fich in /home/Essai/*; do echo "fichier trouvé dans le répertoire Essai : " $fich; done
Seulement j'aimerais faire une double boucle du genre :
Pour chaque fichier i du dossier Essai Faire
Pour chaque fichier ">i" du dossier Essai Faire
Diverses choses =)
Fait
Fait
J'espère avoir été assez clair et si ce n'est pas le cas n'hésitez pas à me demander des éclaircissements!
Merci par avance de votre précieuse aide!
Bonne fin de journée
R.
Configuration: Windows XP Firefox 2.0.0.14
2 réponses
-
Salut,
Je ne sais pas si j'ai bien tout compris, mais voilà un bout de code basé sur un tableau...[tmpfs]$ tree . |-- Essai | |-- Essai1 | |-- Essai2 | |-- Essai3 | `-- Essai4 `-- foo.sh 1 directory, 5 files [tmpfs]$ cat foo.sh #! /bin/bash cd Essai tableau=( $(ls *) ) count=${#tableau[@]} for (( i=0; i<count; i++ )) do j=$i while [ "$j" -lt "$((count-1))" ] do echo ${tableau[$i]},${tableau[$((j+1))]} j=$((j+1)) done done [tmpfs]$ ./foo.sh Essai1,Essai2 Essai1,Essai3 Essai1,Essai4 Essai2,Essai3 Essai2,Essai4 Essai3,Essai4 [tmpfs]$;-))
-
Merci c'est exactement ce que je cherchais et je ne connaissais pas les conditions d'utilisation!
Petit rajour que j'ai fait si cela peut servir à quelqu'un :
set tableau=`ls $Directory | grep -v '/'`
Cette commande permet de n'avoir que les fichiers contenus dans le dossier.
En tous cas [encore] Merci Jipicy!
Bonne journée
R.