広告が嫌いですか? 行く 広告なし 今日

シェルグローバルパターンテスト

データ開発者文章
*(任意の文字)、?(1文字)、**(パスの任意の部分)、[abc](文字クラス)、{a,b}(代替パターン)を使用します。!を前につけると反転されます。
異なるシェルでは *、**、?、およびブレースの解釈が異なります。出力の下部に記載されたノートがその違いを説明しています。
マッチ結果はここに表示されます。

ガイド

シェルグローバルパターンテスト

シェルグローバルパターンテスト

ファイルパスのリストに対してグローバルパターンをテストし、正確にどのパスがマッチするかをリアルタイムで確認できます — Bash、Zsh、.gitignore、Python、Goのセマンティクスを含みます。 fnmatch、およびGo path.Match. パターンをタイプしてください src/**/*.{js,ts}、パスを貼り付け、タイプするたびにマッチは緑でハイライトされ、非マッチは色が薄れていきます。

使用方法

  1. [globパターン]フィールドにグローバルパターンを入力してください(例 グローバルパターン — 同じパターンがBash、.gitignore、Python **/*.log).
  2. [表示モード]を選択してください シェル / モード 、またはGoで異なるパスセットにマッチする可能性があります。 fnmatch
  3. あなたの ファイルパス 1行ごとに — または組み込みの例をクリックしてください。
  4. マッチは緑色でチェックアイコン付きでハイライトされ、非マッチは灰色のままです。要約はカウントと選択したモードに関するノートを表示します。
  5. パターンの前に ! を付けるとマッチを反転(マッチしないパスが緑でハイライトされます)します。 ない

機能

  • 5つのシェルモード — Bash(globstarあり)、Zsh extended_glob、.gitignore、Python fnmatch、およびGo path.Match、それぞれが正しいセマンティクスとブレース展開を提供します。 *, **, ?、およびブレース展開。
  • リアルタイムハイライト — パターンをタイプするたびにパスが再評価されます。送信ボタンは必要ありません。
  • ブレース展開{a,b,c} BashおよびZshモードでの代替パターン、ネストや交叉積(例 src/{js,ts}/**/*.{spec,test}.ts.
  • 文字クラス[abc], [!abc] 否定クラスおよび範囲(例 [A-Z].
  • 否定 — 任意のパターンの前に ! を付けるとマッチを反転します。
  • モードノート — 各結果の下に、選択したモードがパターンをどのように解釈するかを説明する短い説明が表示されます。
  • クイック例 — ウェブプロジェクトレイアウト、.gitignoreスタイルのログフィルタ、またはドキュメント/Readmeの例を読み込み、視覚的に学習できます。
  • クライアントサイドのみ — パターンとパスはブラウザに残り、ロード後はオフラインで動作します。

一般的な使用例

  • .gitignoreルールのデバッグ — ファイルパスリストを貼り付け、候補ルールが無視するパスを確認できます。 git status
  • ビルドグローバルパターンの作成 — パターンが tsc, esbuild、 または prettier --write に渡されたときに、期待されるファイルのみがマッチし、それ以外はマッチしないことを確認できます。
  • CIパスフィルタの作成 — GitHub ActionsまたはGitLab CIでのフィルタが、プッシュ前に正しいファイルのサブセットをターゲットとしているかを確認できます。 paths:
  • シェルスクリプトの翻訳 — コードをBashからPythonまたはGoサービスに移行した後、パターンが依然として機能しているかを確認できます。
  • globセマンティクスの教育 — 学生に、 * がBashではディレクトリ境界を越えないが、Zshでは越えることの理由を具体的に示します。 fnmatch.

よくある質問

  1. グローバルパターンにおける * と ** の違いは?

    1つの * は、1つのパスセグメント内の任意の文字をマッチしますが、ディレクトリセパレータ(/)を越えません。2つの ** (globstar)は、任意の数のディレクトリセグメントを横断して任意の文字をマッチします。したがって src/*.js マッチする src/index.jssrc/utils/index.jsではありませんが、 src/**/*.js は両方をマッチします。すべてのグローバルダイアレクトが ** をサポートしているわけではありません — Python fnmatch およびGoは、2つの星を2つの独立した path.Match トークンとして扱います。 *

  2. グローバルマッチングは正規表現とどう異なりますか?

    グローバルは、ファイルパスをマッチするための非常にシンプルなパターン言語です。ほとんどの文字は字面として扱われます: *, ?, [...]、および(一部のシェルで) {...} は唯一のメタ文字です。量詞、アンカー、ラウンド、バックリファレンスは存在しません。実装ではグローバルパターンを内部的に正規表現に変換することがありますが、ユーザーは正規表現の概念を意識する必要はありません。グローバルは意図的にシンプルであるため、シェルコマンドラインが短く予測可能になります。

  3. なぜブレース展開はすべてのグローバルダイアレクトで機能しないのですか?

    ブレース展開({a,b,c} を3つの代替に展開)は、BashおよびZshにおいて技術的にはシェルの機能であり、グローバルパターンがマッチされる前に評価されます。シェルはブレース表現を複数の引数に展開し、その結果としてのファイルグローバルが独立してマッチされます。Go、Pythonなどのツールが使用する純粋なグローバルライブラリは、ブレース展開を実装していません。なぜなら、ブレース展開はグローバル言語の一部ではなく、シェルレベルの事前処理ステップであるからです。 git (in .gitignorefnmatch、およびGo path.Match

  4. グローバルパターンの先頭に!があるのはどうですか?

    文脈によって意味が変わります。文字クラス内で [!abc] はクラスを否定します — 任意の1文字をマッチしますが、 a, b、 または cを除きます。パターン全体の先頭に ! がある場合、これは .gitignore の機能であり、以前無視されたパスを再含めます。ほとんどのシェルは、グローバルパターンの先頭に ! を処理して否定と見なしません — 代わりにエラーを返す(Zshの履歴展開)またはそのまま通過します。このテストツールでは、先頭の ! は便利さのため、マッチを反転してマッチしないパスを緑でハイライトします。

広告なしで楽しみたいですか? 今すぐ広告なしで

拡張機能をインストールする

お気に入りのブラウザにIOツールを追加して、すぐにアクセスし、検索を高速化します。

に追加 Chrome拡張機能 に追加 エッジ拡張 に追加 Firefox 拡張機能 に追加 Opera 拡張機能

スコアボードが到着しました!

スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!

ニュースコーナー 技術ハイライト付き

参加する

価値ある無料ツールの提供を継続するためにご協力ください

コーヒーを買って