Keine Werbung mögen? Gehen Werbefrei Heute

Shell-Glob-Muster-Tester

DatenEntwicklerText
ANZEIGE Entfernen?
Verwende * (beliebige Zeichen), ? (ein Zeichen), ** (beliebige Pfadkomponente), [abc] (Zeichenklasse), {a,b} (Alternativen). Führe mit ! voran, um zu invertieren.
Verschiedene Shells interpretieren *, **, ?, und geschweifte Klammern unterschiedlich. Die Hinweise unterhalb der Ausgabe erklären die Unterschiede.
Die Übereinstimmungsergebnisse werden hier angezeigt.
ANZEIGE Entfernen?

Führung

Shell Glob Pattern Tester

Shell-Glob-Muster-Tester

Teste Glob-Muster gegen eine Liste von Dateipfaden und sehe genau, welche Pfade übereinstimmen — in Echtzeit, mit Semantik für Bash, Zsh, .gitignore, Python und Go fnmatch, und Go path.Match. Geben Sie ein Muster wie ein src/**/*.{js,ts}ein, fügen Sie Pfade ein und beobachten Sie, wie Übereinstimmungen grün hervorgehoben und Nicht-Übereinstimmungen ausgeblendet werden, während Sie eingeben.

Nutzung

  1. Geben Sie ein Glob-Muster im Glob Muster Feld ein (z. B. **/*.log).
  2. Wählen Sie einen Shell / Modus — das gleiche Muster kann unterschiedliche Mengen von Pfaden ergeben, abhängig davon, ob Sie in Bash, .gitignore, Python fnmatchoder Go sind.
  3. Fügen Sie Ihre Dateipfade ein pro Zeile — oder klicken Sie ein eingebautes Beispiel.
  4. Übereinstimmungen werden grün mit einem Prüfzeichen hervorgehoben; Nicht-Übereinstimmungen bleiben grau. Die Zusammenfassung zeigt die Anzahl und einen Hinweis zu dem gewählten Modus.
  5. Vor das Muster mit ! zu invertieren (alle Pfade hervorheben, die nicht übereinstimmen). nicht Fünf Shell-Modi

Funktionen

  • – Bash (mit globstar), Zsh extended_glob, .gitignore, Python jeweils mit den korrekten Semantiken für fnmatch, und Go path.Match, und geschweifte Klammern. *, **, ?Echtzeit-Hervorhebung
  • – Die Pfade werden bei Eingabe des Musters neu ausgewertet; kein Submit-Button. Geschweifte Klammern
  • Alternativen in Bash- und Zsh-Modi, einschließlich verschachtelter und kreuzerzeugter Kombinationen wie{a,b,c} Zeichenklassen src/{js,ts}/**/*.{spec,test}.ts.
  • negierte Klassen und Bereiche wie[abc], [!abc] Negation [A-Z].
  • – Vor jedes Muster mit zu umkehren. ! Modus-Hinweise
  • – Eine kurze Erklärung erscheint unter jedem Ergebnis und erklärt, wie der gewählte Modus das Muster interpretiert. – Laden Sie eine Web-Projekt-Architektur, eine .gitignore-artige Log-Filterung oder ein Dokumentations-Beispiel zum Inspektionen.
  • Schnelle Beispiele – Muster und Pfade bleiben immer in Ihrem Browser; funktioniert offline, sobald geladen ist.
  • Nur clientseitig Debuggen von .gitignore-Regeln

Häufige Anwendungsfälle

  • – Fügen Sie eine Liste von Pfaden aus ein und sehen Sie, welche durch eine Kandidat-Regel ignoriert würden. git status Schreiben von Build-Glob-Argumenten
  • – Stellen Sie sicher, dass ein Muster, das an übergeben wird, genau die Dateien erfasst, die erwartet werden, und nichts anderes. tsc, esbuild, oder prettier --write Autorisieren von CI-Pfad-Filtern
  • – Bestätigen Sie, dass ein Filter in GitHub Actions oder GitLab CI die richtige Auswahl an Dateien vor dem Push erreicht. paths: Übersetzen von Shell-Skripten
  • – Verifizieren Sie, dass ein Muster nach dem Portieren von Code zwischen Bash und einem Python- oder Go-Service weiterhin funktioniert. Unterrichten von Glob-Semantik
  • – Zeigen Sie Studierenden konkreter, warum in Bash nicht über die Verzeichnisgrenze geht, aber in * ja. fnmatch.

Häufig gestellte Fragen

  1. Was ist der Unterschied zwischen * und ** in einem Glob-Muster?

    Ein einzelnes * passt auf beliebige Zeichen innerhalb eines einzelnen Pfadabschnitts, aber es kreuzt keine Verzeichnisabgrenzung (/). Das doppelte ** (bezeichnet als globstar) passt auf beliebig viele Zeichen über beliebig viele Verzeichnisabschnitte. So passt src/*.js passt src/index.js aber nicht src/utils/index.js, während src/**/*.js beide passt. Nicht jede Glob-Sprache unterstützt ** — Python fnmatch und Go path.Match behandeln die beiden Sterne als zwei separate * Tokens.

  2. Wie unterscheidet sich Glob-Matching von einem regulären Ausdruck?

    Globs sind eine viel kleinere Muster-Sprache, die für die Übereinstimmung von Dateipfaden konzipiert ist. Die meisten Zeichen sind wörtlich: *, ?, [...], und (in einigen Shells) {...} sind die einzigen Metazeichen. Es gibt keine Quantifikatoren, keine Anker, keine Lookaround und keine Rückverweisungen. Implementierungen übersetzen das Glob-Modell oft intern in einen regulären Ausdruck, aber die Benutzer müssen nicht in regulären Ausdrücken denken. Glob ist absichtlich einfach, damit Befehlszeilen kürzer und vorhersagbar bleiben.

  3. Warum funktioniert die Braces-Expansion nicht in allen Glob-Dialekten?

    Braces-Expansion ({a,b,c} erweitert auf drei Alternativen) ist technisch eine Shell-Funktion in Bash und Zsh, die vor dem Glob-Matching ausgewertet wird. Die Shell erweitert die geschweifte Ausdruck in mehrere Argumente, und die resultierenden Datei-Globs werden unabhängig abgeglichen. Reine Glob-Bibliotheken, die von Tools wie git (in .gitignore), Python fnmatch, und Go path.Match benutzen, implementieren keine Braces-Expansion, weil es nicht wirklich Teil der Glob-Sprache ist — es ist ein separater Schritt der Shell-Ebene.

  4. Was bedeutet das führende ! in einem Glob-Muster?

    Die genaue Bedeutung hängt vom Kontext ab. Innerhalb einer Zeichenklasse, [!abc] negiert die Klasse — passt auf jedes einzelne Zeichen außer a, b, oder c. Als führendes Zeichen vor einem ganzen Muster, ! ist vor allem eine .gitignore Funktion, bei der ein zuvor ignoriertes Pfad erneut eingeschlossen wird. Die meisten Shells behandeln ein führendes ! vor einem Glob nicht als Negation allein — sie geben entweder Fehler (Zsh-Historieerweiterung) oder übergeben es weiter. In diesem Tester wird ein führendes ! als eine Bequemlichkeit interpretiert: es invertiert die Übereinstimmung, sodass nicht übereinstimmende Pfade grün hervorgehoben werden.

Möchten Sie werbefrei genießen? Werde noch heute werbefrei

Erweiterungen installieren

IO-Tools zu Ihrem Lieblingsbrowser hinzufügen für sofortigen Zugriff und schnellere Suche

Zu Chrome-Erweiterung Zu Kantenerweiterung Zu Firefox-Erweiterung Zu Opera-Erweiterung

Die Anzeigetafel ist eingetroffen!

Anzeigetafel ist eine unterhaltsame Möglichkeit, Ihre Spiele zu verfolgen. Alle Daten werden in Ihrem Browser gespeichert. Weitere Funktionen folgen in Kürze!

ANZEIGE Entfernen?
ANZEIGE Entfernen?
ANZEIGE Entfernen?

Nachrichtenecke mit technischen Highlights

Beteiligen Sie sich

Helfen Sie uns, weiterhin wertvolle kostenlose Tools bereitzustellen

Kauf mir einen Kaffee
ANZEIGE Entfernen?