Crack-wifi.com FORUM

LE FORUM DU SITE

Wifi, Backtrack, crack WEP et WPA...

Vous n'êtes pas identifié(e).  

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

#1 01-09-2012 11:27:37

Telestra
Membre Hyperactif
Inscription : 01-05-2012
Messages : 52

Recherche d'un outil pour "multiplier" ou "combiner" deux listes

Bonjour.

Je recherche un outil permettant de multiplier deux listes entre elles.

Exemple:

Liste A:

A
B
C

Liste B:

01/01
02/01
03/01

Liste résultante:

A01/01
A02/01
A03/01
B01/01
B02/01
B03/01
B01/01
B02/01
B03/01

MS Access pourrait me le faire, mais le résultat dépasse les 2 gigas donc ça passe pas.
Avant de me lancer dans du découpage, j'aurais aimé savoir si l'un d'entre vous a une idée pour réaliser cette tache.

Merci.

Hors Ligne

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

#2 01-09-2012 11:44:41

antares145
Membre d'honneur
Inscription : 29-09-2009
Messages : 5 199
Site Web

Re : Recherche d'un outil pour "multiplier" ou "combiner" deux listes

Sous Linux ou Windows ?

Sous Linux tu peux utiliser l'utilitaire "paste" (inclus par défaut sur n'importe quelle distro) qui colle  colonne par colonne.
Donc si tu as un premier fichier "liste_A.txt" et un second fichier "liste_B.txt" qui correspondent à ce que tu décris ci-dessus, tu fais simplement ceci :

paste liste_A.txt liste_B.txt
#Si le résultat te convient, tu peux rediriger le résultat dans un fichier "combinaison.txt"
paste liste_A.txt liste_B.txt > combinaison.txt

Dans l'exemple que tu donnes, il faut répéter les lignes de A pour chaque ligne de B (si j'ai bien compris). Tu peux le faire via une double boucle, en bash. Colle ceci dans un nouveau fichier que tu appelles "combine.sh" :

#!/bin/bash
echo -n "" > result.txt
while read line1
	do
	while read line2
		do 
		echo $line1$line2 >> result.txt
	done < liste_B.txt
done < liste_A.txt

Ensuite tu enregistres ce fichier, tu le rends exécutable et tu l'exécutes :

chmod +x combine.sh
./combine.sh

Le résultat sera dans "result.txt" smile

Pour ceux qui veulent comprendre comment le code fonctionne :
- la première ligne avec #! est obligatoire, elle indique quel est l'interpréteur
- la seconde ligne efface le contenu du fichier "result.txt" en écrivant "" (c'est à dire rien) et en supprimant le retour à la ligne (option -n)
- les deux boucles "While" lisent un fichier ligne par ligne. Chaque ligne sera stockée dans la variable "ligne1" ou "ligne2".
- au milieu des deux boucles, on écrit les deux lignes en cours dans le fichier de sortie. Le double chevron >> indique qu'il faut ajouter le résultat à la fin du fichier au lieu de tout écraser (simple chevron >)
- Pour indiquer à la boucle "While quel fichier il doit lire, on fait une redirection d'entrée avec un chevron inversé < à la fin de la boucle (après le "done" donc).

Et voilà smile Le coup de la double boucle c'est assez classique quand on a l'habitude de travailler avec Matlab, mais c'est peut-être un peu obscur pour les débutants en programmation. Si mes explications ne sont pas assez claires, je me ferai un plaisir de clarifier wink

Hors Ligne

#3 01-09-2012 17:29:09

Telestra
Membre Hyperactif
Inscription : 01-05-2012
Messages : 52

Re : Recherche d'un outil pour "multiplier" ou "combiner" deux listes

Linux, windows, peu importe, j'ai les deux.

Ton script marche presque, mais j'ai un retour à la ligne après chaque variable, et je n'arrive pas à corriger cela.

Hors Ligne

#4 01-09-2012 17:34:03

antares145
Membre d'honneur
Inscription : 29-09-2009
Messages : 5 199
Site Web

Re : Recherche d'un outil pour "multiplier" ou "combiner" deux listes

Bizarre, j'ai testé chez moi et ça fonctionne. Mais sur Archlinux et pas BackTrack, je ne sais pas quel système tu utilises (même si ça ne devrait faire aucune différence).

Tu sais donner un exemple du résultat que tu obtiens avec ton exemple de ci-dessus ? Ah, et au passage, vérifie que tu n'as pas une ligne vide (ou un retour à la ligne) à la fin de chacun de tes fichiers de liste wink

Hors Ligne

#5 02-09-2012 13:21:00

Telestra
Membre Hyperactif
Inscription : 01-05-2012
Messages : 52

Re : Recherche d'un outil pour "multiplier" ou "combiner" deux listes

J'utilise backtrack 5 installé non émulé.

1 - Ligne vide à la fin : j'ai du rajouter un retour à la ligne à la fin de chaque fichier, sinon le script ne prennait en compte que n-1 éléments

2 - Résultat obtenu : " $line1$line2 " produit un saut de ligne entre les deux variables

Par exemple si je fais

" $line1 * $line2 "
élément 1 liste 1
* élément 1 liste 2
élément 1 liste 1
* élément 2 liste 2

au lieux de

élément 1 liste 1 * élément 1 liste 2
élément 1 liste 1 * élément 2 liste 2

Hors Ligne

#6 02-09-2012 14:07:58

antares145
Membre d'honneur
Inscription : 29-09-2009
Messages : 5 199
Site Web

Re : Recherche d'un outil pour "multiplier" ou "combiner" deux listes

Vraiment curieux. Je viens de faire le test sur BT5-R3 (en machine virtuelle mais ça ne change rien) et ça fonctionne...

! TILT !
Tu m'as dit que tu avais fait des tests sous MS Access ? Ca veut sans doute dire que tes fichiers de liste ont été enregistrés sous Windows ! Unix et Windows ont des conventions différentes pour indiquer les fins de ligne : WIndows utilise [CR][LF] tandis que Unix n'utilise que [LF]. Donc Unix pense qu'il y a deux retours à la ligne (pour faire simple), d'où le bug smile
Plus d'info ici --> Carriage Return Line Feed - Wikipedia

Pur régler le problème, ou bien tu recrées tes listes directement sous Linux (les réenregistrer sous un autre nom suffira sans doute) soit tu utilises le programme "dos2unix" qui sert justement à convertir ces formats :

dos2unix liste_A.txt liste_B.txt

Ce programme est installé par défaut sur BackTrack wink

Ça fonctionne une fois que t'as fait ça ?

Hors Ligne

#7 02-09-2012 14:59:37

Telestra
Membre Hyperactif
Inscription : 01-05-2012
Messages : 52

Re : Recherche d'un outil pour "multiplier" ou "combiner" deux listes

antares145 a écrit :

Vraiment curieux. Je viens de faire le test sur BT5-R3 (en machine virtuelle mais ça ne change rien) et ça fonctionne...

! TILT !
Tu m'as dit que tu avais fait des tests sous MS Access ? Ca veut sans doute dire que tes fichiers de liste ont été enregistrés sous Windows ! Unix et Windows ont des conventions différentes pour indiquer les fins de ligne : WIndows utilise [CR][LF] tandis que Unix n'utilise que [LF]. Donc Unix pense qu'il y a deux retours à la ligne (pour faire simple), d'où le bug smile
Plus d'info ici --> Carriage Return Line Feed - Wikipedia

Pur régler le problème, ou bien tu recrées tes listes directement sous Linux (les réenregistrer sous un autre nom suffira sans doute) soit tu utilises le programme "dos2unix" qui sert justement à convertir ces formats :

dos2unix liste_A.txt liste_B.txt

Ce programme est installé par défaut sur BackTrack wink

Ça fonctionne une fois que t'as fait ça ?

+1
bien joué smile

Hors Ligne

#8 03-09-2012 13:08:05

Telestra
Membre Hyperactif
Inscription : 01-05-2012
Messages : 52

Re : Recherche d'un outil pour "multiplier" ou "combiner" deux listes

J'ai ajouté une autre solution, plus rapide, ici

Hors Ligne

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

Sujets similaires

Pied de page des forums


Le coin des bonnes affaires, achats informatiques:


|   Alfa 1000 mW AWUS036H   |    Linksys WRT54GL   |    Misco, informatique   |   
 |    Ebay   |    PC portables   |    PC Gamers & Tuning   |    Cles USB   |   
|   Disques durs externes 2 To   |   
|   Wifi-highpower.com   |   


Server Stats - [ Generated in 0.027 seconds ]   Forum Stat - [ Most users ever online on the forum was : 150 on 20-09-2009 17:06:59 ]