Anúncios incomodam? Ir Sem anúncios Hoje

Testador de padrão de glob da shell

DadosDesenvolvedorTexto
ANUNCIADO Remover?
Use * (qualquer caractere), ? (um caractere), ** (qualquer caminho), [abc] (classe de caractere), {a,b} (alternativas). Prefixe com ! para inverter.
Diferentes shells interpretam *, **, ?, e chaves de forma diferente. As notas abaixo do resultado explicam as diferenças.
Os resultados de correspondência aparecerão aqui.
ANUNCIADO Remover?

Guia

Teste padrões glob contra uma lista de caminhos de arquivos e veja exatamente quais caminhos correspondem — em tempo real, com semânticas para Bash, Zsh, .gitignore, Python fnmatch,

Testador de padrão de glob da shell

Teste padrões glob contra uma lista de caminhos de arquivos e veja exatamente quais caminhos correspondem — em tempo real, com semânticas para Bash, Zsh, .gitignore, Python e Go fnmatch, e Go path.Match. Digite um padrão como src/**/*.{js,ts}, cole caminhos e observe que as correspondências ficam destacadas em verde e os não-matches desaparecem enquanto você digita.

Como usar

  1. Insira um padrão glob no campo Padrão Glob (por exemplo **/*.log).
  2. Escolha um Shell / Modo — o mesmo padrão pode corresponder a diferentes conjuntos de caminhos dependendo de se estiver em Bash, .gitignore, Python fnmatch, ou Go.
  3. Cole o seu caminhos de arquivos um por linha — ou clique em um exemplo pré-definido.
  4. Correspondências destacam-se em verde com um ícone de verificação; não-correspondências permanecem cinza. A resumo mostra a contagem e uma nota sobre o modo escolhido.
  5. Prefixe seu padrão com ! para inverter a correspondência (destaque tudo que não corresponde). não Para inverter a correspondência.

Características

  • Cinco modos de shell – Bash (com globstar), Zsh extended_glob, .gitignore, Python fnmatch, e Go path.Match, cada um com as semânticas corretas para *, **, ?, e expansão de chaves.
  • Destaque em tempo real – Os caminhos são reavaliados enquanto você digita o padrão; não há botão de envio.
  • Expansão de chaves{a,b,c} alternativas em modos Bash e Zsh, incluindo aninhamento e produtos cruzados como src/{js,ts}/**/*.{spec,test}.ts.
  • Classes de caracteres[abc], [!abc] classes negadas e intervalos como [A-Z].
  • Negação – Prefixe qualquer padrão com ! para inverter a correspondência.
  • Notas do modo – Uma explicação breve aparece abaixo de cada resultado, explicando como o modo escolhido interpreta o padrão.
  • Exemplos rápidos – Carregue um layout de projeto web, um filtro de log estilo .gitignore ou um exemplo de documentos/README para aprender por inspeção.
  • Somente no lado do cliente – Padrões e caminhos nunca saem do seu navegador; funciona offline uma vez carregado.

Casos de uso comuns

  • Depuração de regras .gitignore – Cole uma lista de caminhos de git status e veja quais seriam ignorados por uma regra candidata.
  • Escrita de argumentos de build com glob – Valide que um padrão passado para tsc, esbuild, ou prettier --write corresponde aos arquivos que você espera e a nada mais.
  • Elaboração de filtros de caminhos para CI – Confirme que um paths: filtro em GitHub Actions ou GitLab CI atinge o subconjunto correto de arquivos antes de empurrar.
  • Tradução de scripts de shell – Verifique que um padrão ainda funciona após portar o código entre Bash e um serviço em Python ou Go.
  • Ensino de semânticas de glob – Mostre aos alunos de forma concreta por que * não atravessa limites de diretório em Bash, mas sim em fnmatch.

Perguntas frequentes

  1. Qual a diferença entre * e ** em um padrão glob?

    Um único * corresponde a qualquer caractere dentro de um segmento de caminho, mas não atravessa um separador de diretório (/). O duplo ** (chamado globstar) corresponde a qualquer número de caracteres em qualquer número de segmentos de diretório. Assim, src/*.js coincidem src/index.js mas não src/utils/index.js, enquanto src/**/*.js corresponde a ambos. Não todos os dialectos de glob suportam ** — Python fnmatch e Go path.Match tratam os dois asteriscos como dois tokens separados. * Como a correspondência de glob difere de uma expressão regular?

  2. Os glob são uma linguagem de padrão muito mais simples, projetada para corresponder caminhos de arquivos. A maioria dos caracteres são literais:

    , e (em algumas shells) *, ?, [...]são os únicos metacaracteres. Não há sintaxe de quantificadores, nenhum ancoramento, nenhum lookahead, nem referências de retorno. As implementações traduzem internamente o glob para uma expressão regular, mas os usuários não precisam pensar em termos de regex. O glob foi intencionalmente simplificado para que os comandos de shell permaneçam curtos e previsíveis. {...} Por que a expansão de chaves não funciona em todos os dialectos de glob?

  3. A expansão de chaves (

    expandido para três alternativas) é tecnicamente uma característica do shell em Bash e Zsh, avaliada antes da correspondência do glob. O shell expande a expressão de chaves em múltiplos argumentos, e os arquivos resultantes são correspondidos independentemente. Bibliotecas puro de glob usadas por ferramentas como{a,b,c} (em git ), Python .gitignorenão implementam expansão de chaves porque não faz parte realmente da linguagem de glob — é apenas um passo pré-processamento do nível do shell. fnmatch, e Go path.Match O que significa o ! inicial em um padrão glob?

  4. O significado exato depende do contexto. Dentro de uma classe de caracteres,

    negativa a classe — corresponde a qualquer caractere individual exceto [!abc] . Como caractere inicial em um padrão completo, a, b, ou cé principalmente uma ! função onde ele re-inclui um caminho anteriormente ignorado. A maioria dos shells não trata um inicial .gitignore em um padrão glob como negação por si só — eles geram erro (expansão de histórico em Zsh) ou o passam. Neste teste, um inicial ! é interpretado como uma conveniência: inverte a correspondência para que os caminhos não correspondentes sejam destacados em verde. ! por exemplo, src/**/*.{js,ts}

Quer eliminar anúncios? Fique sem anúncios hoje mesmo

Instale nossas extensões

Adicione ferramentas de IO ao seu navegador favorito para acesso instantâneo e pesquisa mais rápida

Ao Extensão do Chrome Ao Extensão de Borda Ao Extensão Firefox Ao Extensão Opera

O placar chegou!

Placar é uma forma divertida de acompanhar seus jogos, todos os dados são armazenados em seu navegador. Mais recursos serão lançados em breve!

ANUNCIADO Remover?
ANUNCIADO Remover?
ANUNCIADO Remover?

Notícias com destaques técnicos

Envolver-se

Ajude-nos a continuar fornecendo ferramentas gratuitas valiosas

Compre-me um café
ANUNCIADO Remover?