Тестер шаблонов shell
Гид
Тестер шаблонов shell
Проверяйте шаблоны глоба на списке путей к файлам и увидите, какие именно пути совпадают — в реальном времени, с семантикой для Bash, Zsh, .gitignore, Python и Go fnmatch, и Go path.Match. Введите шаблон, вставьте пути и следите за тем, как совпадения подсвечиваются зелёным, а несовпадения — исчезают при вводе. src/**/*.{js,ts}Введите шаблон глоба в поле
Как использовать
- (например Шаблон глоба — такой же шаблон может совпадать с разными наборами путей в зависимости от того, в каком режиме вы находитесь: Bash, .gitignore, Python
**/*.log). - Выберите Скрипт / Режим , или Go.
fnmatchпути к файлам - Вставьте ваш один на строку — или нажмите встроенный пример. Совпадения подсвечиваются зелёным с иконкой проверки; несовпадения остаются серыми. Обзор показывает количество совпадений и примечание о выбранном режиме.
- Предварительно добавьте
- к шаблону, чтобы инвертировать совпадение (подсветить всё, что не совпадает).
!Пять режимов оболочек нет – Bash (с globstar), Zsh extended_glob, .gitignore, Python
Возможности
- каждый из которых имеет правильную семантику для , и расширения фигурных скобок.
fnmatch, и Gopath.MatchРеальное время подсветки*,**,?– Пути пересчитываются при вводе шаблона; нет кнопки отправки. - Расширение фигурных скобок альтернативы в режимах Bash и Zsh, включая вложенность и перекрёстные произведения, такие как
- Классы символов –
{a,b,c}отрицательные классы и диапазоны, такие какsrc/{js,ts}/**/*.{spec,test}.ts. - Отрицание –
[abc],[!abc]– Добавьте любое выражение шаблона с помощью[A-Z]. - для инвертирования совпадения. Примечания по режиму
!– Краткое объяснение появляется под каждым результатом и объясняет, как выбранный режим интерпретирует шаблон. - – Загрузите структуру веб-проекта, фильтр лога в стиле .gitignore или пример из документации, чтобы изучать по образцу. – Шаблоны и пути остаются в вашем браузере; работает офлайн после загрузки.
- Быстрые примеры Отладка правил .gitignore
- Только на стороне клиента – Вставьте список путей из
Распространенные случаи использования
- и увидите, какие из них будут игнорироваться заданным правилом. Создание аргументов сборки на основе шаблонов
git status– Проверьте, чтобы шаблон, передаваемый в - совпадал с теми файлами, которые вы ожидаете, и не совпадал с другими. Создание фильтров путей в CI
tsc,esbuild, илиprettier --write– Убедитесь, что фильтр в GitHub Actions или GitLab CI охватывает правильный набор файлов перед тем, как они будут отправлены. - Перевод скриптов на оболочке – Проверьте, что шаблон продолжает работать после переноса кода с Bash на Python или Go.
paths:Обучение семантике шаблонов глоба - – Покажите студентам, почему не переходит границы каталога в Bash, но делает это в
- Какова разница между * и ** в шаблоне глоба? Один
*соответствует любым символам в одном сегменте пути, но не переходит через разделитель каталога (fnmatch.
Часто задаваемые вопросы
-
). Два
(называемые globstar) соответствуют любому количеству символов через любое количество сегментов каталога. Поэтому
*соответствует обеим. Не все варианты шаблонов поддерживают/— Python**и Gosrc/*.jsсоответствуетsrc/index.jsно неsrc/utils/index.jsтрактуют два звёздочки как два отдельныхsrc/**/*.jsтокена.**Как глобальное совпадение отличается от регулярного выражения?fnmatchГлобальные шаблоны — это гораздо более простой язык шаблонов, предназначенный для совпадения путей к файлам. Большинство символов являются буквальными:path.Match, и (в некоторых оболочках)*— единственные метасимволы. Нет синтаксиса для количественных выражений, нет анкеров, нет поиска вперед/назад и нет ссылок на группы. Реализации обычно переводят глобальный шаблон в регулярное выражение внутренне, но пользователи не обязаны думать в терминах регулярных выражений. Глобальный шаблон намеренно прост, чтобы командные строки оставались короткими и предсказуемыми. -
Почему расширение фигурных скобок не работает во всех вариантах шаблонов?
Расширение фигурных скобок (
*,?,[...]расширяет до трёх альтернатив) — это технически функция оболочки в Bash и Zsh, выполняемая до того, как происходит совпадение шаблона. Оболочка предварительно расширяет выражение фигурных скобок в несколько аргументов, и затем каждый из полученных файловых шаблонов проверяется отдельно. Пуристские библиотеки глобов, используемые инструментами, такими как{...}(в -
), Python
не реализуют расширение фигурных скобок, потому что это не относится к языку глобов — это отдельный этап предобработки на уровне оболочки.
{a,b,c}Что означает ведущий ! в шаблоне глоба?gitТочное значение зависит от контекста. Внутри класса символов,.gitignoreотрицает класс — соответствует любому одиночному символу, кромеfnmatch, и Gopath.Match. В качестве ведущего символа на весь шаблон, -
в основном является
функцией, которая включает ранее игнорированный путь. Большинство оболочек не рассматривают ведущий символ
[!abc]в шаблоне глоба как отрицание — они либо выдают ошибку (расширение истории в Zsh), либо передают его без изменений. В этом тестере ведущий символa,b, илиcинтерпретируется как удобство: он инвертирует совпадение, чтобы несовпадающие пути подсвечивались зелёным.!например, src/**/*.{js,ts}.gitignoresrc/index.jssrc/utils/helpers.tsREADME.md...!Тестер шаблонов глоба для оболочки 1!Тестер шаблонов глоба для оболочки
Установите наши расширения
Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска
恵 Табло результатов прибыло!
Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!
Подписаться на новости
все Новые поступления
всеОбновлять: Наш последний инструмент Добавлено 20 июня 2026 года
