Ich versuche, den Inhalt einer Datei zu testen, die aus Code generiert wird. Das Problem ist, dass der vollständige Name der Datei auf einem Zeitstempel basiert abc123_#{d.strftime('%Y%m%d%I%M%S')}.log
Ruby: Verwenden eines regulären Ausdrucks zum Suchen und Öffnen einer Datei basierend auf ihrem Dateinamen?
Wie könnte ich File
verwenden, um diese Datei zu finden und zu lesen? Ich habe versucht, File.exists?()
mit einem regulären Ausdruck als Parameter, aber das hat nicht funktioniert.
Ich fand diese in einer anderen Frage auf Stackoverflow:
File.basename(file_path).match(/_.*(css|scss|sass)/)
Wie würde ich in der Lage sein, dass in meinem Fall zu verwenden, in dem die Datei in meinem public
Ordner befindet?
ANTWORT
So sind die beiden Antworten unter der Arbeit und habe ich eine Kombination von ihnen.
Dir['public/*.log'].select { |f| f =~ /purge_cc_website/}
Die *
dient als Platzhalter, die sich in Art eines regulären Ausdrucks ist. Danach filtern Sie das Array mit einer tatsächlichen Regex.
Es könnte etwas schneller sein, 'f.include? ('Purge_cc_website')' zu machen, da es keine Regex enthält. –