Тестер шаблонов shell

ДанныеРазработчикТекст
Реклама · УДАЛИТЬ?
Используйте * (любые символы), ? (один символ), ** (любой путь), [abc] (класс символов), {a,b} (альтернативы). Добавьте ! в начало для инверсии.
Разные оболочки интерпретируют *, **, ?, и фигурные скобки по-разному. Примечания ниже результатов объясняют различия.
Результаты совпадений появятся здесь.
Реклама · УДАЛИТЬ?

Гид

Проверщик шаблонов Shell

Тестер шаблонов shell

Проверяйте шаблоны глоба на списке путей к файлам и увидите, какие именно пути совпадают — в реальном времени, с семантикой для Bash, Zsh, .gitignore, Python и Go fnmatch, и Go path.Match. Введите шаблон, вставьте пути и следите за тем, как совпадения подсвечиваются зелёным, а несовпадения — исчезают при вводе. src/**/*.{js,ts}Введите шаблон глоба в поле

Как использовать

  1. (например Шаблон глоба — такой же шаблон может совпадать с разными наборами путей в зависимости от того, в каком режиме вы находитесь: Bash, .gitignore, Python **/*.log).
  2. Выберите Скрипт / Режим , или Go. fnmatchпути к файлам
  3. Вставьте ваш один на строку — или нажмите встроенный пример. Совпадения подсвечиваются зелёным с иконкой проверки; несовпадения остаются серыми. Обзор показывает количество совпадений и примечание о выбранном режиме.
  4. Предварительно добавьте
  5. к шаблону, чтобы инвертировать совпадение (подсветить всё, что не совпадает). ! Пять режимов оболочек нет – Bash (с globstar), Zsh extended_glob, .gitignore, Python

Возможности

  • каждый из которых имеет правильную семантику для , и расширения фигурных скобок. fnmatch, и Go path.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.

Часто задаваемые вопросы

  1. ). Два

    (называемые globstar) соответствуют любому количеству символов через любое количество сегментов каталога. Поэтому * соответствует обеим. Не все варианты шаблонов поддерживают/— Python ** и Go src/*.js соответствует src/index.js но не src/utils/index.jsтрактуют два звёздочки как два отдельных src/**/*.js токена. ** Как глобальное совпадение отличается от регулярного выражения? fnmatch Глобальные шаблоны — это гораздо более простой язык шаблонов, предназначенный для совпадения путей к файлам. Большинство символов являются буквальными: path.Match , и (в некоторых оболочках) * — единственные метасимволы. Нет синтаксиса для количественных выражений, нет анкеров, нет поиска вперед/назад и нет ссылок на группы. Реализации обычно переводят глобальный шаблон в регулярное выражение внутренне, но пользователи не обязаны думать в терминах регулярных выражений. Глобальный шаблон намеренно прост, чтобы командные строки оставались короткими и предсказуемыми.

  2. Почему расширение фигурных скобок не работает во всех вариантах шаблонов?

    Расширение фигурных скобок ( *, ?, [...]расширяет до трёх альтернатив) — это технически функция оболочки в Bash и Zsh, выполняемая до того, как происходит совпадение шаблона. Оболочка предварительно расширяет выражение фигурных скобок в несколько аргументов, и затем каждый из полученных файловых шаблонов проверяется отдельно. Пуристские библиотеки глобов, используемые инструментами, такими как {...}

  3. ), Python

    не реализуют расширение фигурных скобок, потому что это не относится к языку глобов — это отдельный этап предобработки на уровне оболочки.{a,b,c} Что означает ведущий ! в шаблоне глоба? git Точное значение зависит от контекста. Внутри класса символов, .gitignoreотрицает класс — соответствует любому одиночному символу, кроме fnmatch, и Go path.Match . В качестве ведущего символа на весь шаблон,

  4. в основном является

    функцией, которая включает ранее игнорированный путь. Большинство оболочек не рассматривают ведущий символ [!abc] в шаблоне глоба как отрицание — они либо выдают ошибку (расширение истории в Zsh), либо передают его без изменений. В этом тестере ведущий символ a, b, или cинтерпретируется как удобство: он инвертирует совпадение, чтобы несовпадающие пути подсвечивались зелёным. ! например, src/**/*.{js,ts} .gitignore src/index.jssrc/utils/helpers.tsREADME.md... ! Тестер шаблонов глоба для оболочки 1 ! Тестер шаблонов глоба для оболочки

Хотите убрать рекламу? Откажитесь от рекламы сегодня

Установите наши расширения

Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска

в Расширение Chrome в Расширение края в Расширение Firefox в Расширение Opera

Табло результатов прибыло!

Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!

Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

новости с техническими моментами

Примите участие

Помогите нам продолжать предоставлять ценные бесплатные инструменты

Купи мне кофе
Реклама · УДАЛИТЬ?