Ich habe eine große Datei, die mehr als 1M Zeilen hat, und eine andere Datei, die die Eingabe-Strings benötigt, um die Zeilen in der großen Datei zu erhalten .Wie verarbeitet man eine große Datei in Schleife als Eingabe für eine andere Datei
konnte ich es auf diese Weise tun:
File.open(strings_file, 'r') do |l|
File.open(large_file, 'r') do |line|
next if !line.include?(l)
puts line
end
end
Aber, wird es die große Datei für jede Schleife öffnen. Zum Beispiel habe ich in input-Strings 100 Zeilen mit Strings. Wenn es ausgeführt wird, öffnet es diese große Datei 100 Mal, um sie zu verarbeiten, was mehr Zeit in Anspruch nimmt.
Gibt es eine viel schnellere Methode, die große Datei 100 Mal zu öffnen?
Schön! Aber es funktioniert nicht wegen Match_lines sind nur einfache Zeichenfolgen und Zeilenvariable Wert würde sowohl Sonderzeichen und Zeichenfolge enthalten. Ich denke, wir müssen das '(match_lines.include? (Line.chomp))' umgekehrt ausführen. Nicht sicher, wie man es in umgekehrter Weise macht. – Karthi1234
Was meinst du mit dem "umgekehrten Weg"? Über welche Art von Inhalten sprichst du in der 'strings_file'? – tadman
strings_file Inhalt: 'Test Wort Bernstein rot Blue' Larger_file Inhalte, die mit den oben genannten Saiten abgestimmt: ' 'Test, das ist t3e $ t-Datei' und 'Standort/mnt' . . blau, die Farbe ist blau und 'die ist Teil von RGB'' Hope mache jetzt klar – Karthi1234