"Globbing" Dateien (mit Dir.glob) in Ruby können Sie nur die gewünschten Dateien auswählen, z. B. alle XML-Dateien in einem bestimmten Verzeichnis. Obwohl Dir.blog ist mögen reguläre Ausdrücke gibt es nicht. Es ist im Vergleich zu Rubys regulären Ausdrücken sehr begrenzt und steht in enger Beziehung zu Shell-Erweiterungs-Wildcards.
Das Gegenteil von Globbing, bei dem alle Dateien in einem Verzeichnis durchlaufen werden, kann mit dem Befehl ausgeführt werden Dir.foreach Methode.
Der folgende Glob passt zu allen Dateien, die auf enden .rb im aktuellen Verzeichnis. Es wird ein einzelner Platzhalter verwendet, der Stern. Das Sternchen stimmt mit keinem oder mehreren Zeichen überein, sodass jede Datei auf endet .rb wird mit diesem Glob übereinstimmen, einschließlich einer Datei mit dem Namen simply .rb, mit nichts vor der Dateierweiterung und der vorhergehenden Periode. Die glob-Methode gibt alle Dateien, die den Globbing-Regeln entsprechen, als Array zurück, das zur späteren Verwendung gespeichert oder durchlaufen werden kann.
#! / usr / bin / env ruby
Dir.glob ('*. Rb'). Each do | f |
setzt f
Ende
Es gibt nur wenige Wildcards zu lernen:
Eine Sache zu berücksichtigen ist die Groß- und Kleinschreibung. Es liegt am Betriebssystem, zu entscheiden, ob TEST.txt und TeSt.TxT Verweisen Sie auf dieselbe Datei. Unter Linux und anderen Systemen sind dies unterschiedliche Dateien. Unter Windows beziehen sich diese auf dieselbe Datei.
Das Betriebssystem ist auch für die Reihenfolge verantwortlich, in der die Ergebnisse angezeigt werden. Es kann sich beispielsweise unterscheiden, ob Sie Windows oder Linux verwenden.
Eine letzte Sache zu beachten ist die Dir [globstring] Bequemlichkeitsmethode. Dies ist funktional das gleiche wie Dir.glob (Globstring) und ist auch semantisch korrekt (Sie indizieren ein Verzeichnis, ähnlich wie ein Array). Aus diesem Grund können Sie sehen Dir [] häufiger als Dir.glob, aber sie sind das gleiche.
Das folgende Beispielprogramm demonstriert so viele Muster wie möglich in vielen verschiedenen Kombinationen.
#! / usr / bin / env ruby
# Holen Sie sich alle .xml-Dateien
Dir ['*. Xml']
# Holen Sie sich alle Dateien mit 5 Zeichen und der Erweiterung .jpg
Dir ['?????. Jpg']
# Holen Sie sich alle JPG-, PNG- und GIF-Bilder
Dir ['*. Jpg, png, gif']
# Gehen Sie in den Verzeichnisbaum und holen Sie sich alle JPG-Bilder
# Hinweis: Dadurch werden auch JPG-Bilder im aktuellen Verzeichnis abgelegt
Dir ['** / *. Jpg']
# Steige in alle Verzeichnisse ab, die mit Uni beginnen, und finde alle
# jpg Bilder.
# Hinweis: Hiermit wird nur ein Verzeichnis heruntergefahren
Dir ['Uni ** / *. Jpg']
# In alle Verzeichnisse absteigen, die mit Uni und allen beginnen
# Unterverzeichnisse von Verzeichnissen, die mit Uni und find beginnen
# all .jpg images
Dir ['Uni ** / ** / *. Jpg']