Bonjour,
j'ai un problème avec ruby (version ruby-2.2.4-x64-mingw32, je suis sous Windows 10). Mon action est simple : je cherche une chaîne 123456$ dans un fichier de 2 Go.
Voici le code, rien de bien spécial
Ca marche sur de petit volume, mais dès que je passe sur ce gros fichier, ça ne me donne plus les bons chiffres. Au départ il y avait un problème semble t il de CR et CR+LF ou Lf mixé que j'ai conformé depuis, tout est sensé être CR+LF. Mais il me compte 86931744 lignes au lieu de 185866730 lignes et 6983 occurrences au lieu de 14901 (vérifié avec grep 123456$ et wc -l.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 counter = 0 counter2 =0 #$/ = "\r\n" filename = "..\\..\\Tests\\10-million-combos.txt" content = File.readlines filename content.each{ |line| counter+=1; if line.match(/123456$/) counter2 += 1 end } p counter p counter2
D’où peut venir le problème à votre avis ???
Partager