{"id":17048517,"url":"https://github.com/hollasch/pathmatch","last_synced_at":"2025-04-12T15:31:32.194Z","repository":{"id":7357518,"uuid":"8682121","full_name":"hollasch/pathmatch","owner":"hollasch","description":"A directory/filename pattern match utility for the Windows command shell","archived":false,"fork":false,"pushed_at":"2024-10-11T18:58:11.000Z","size":1503,"stargazers_count":6,"open_issues_count":21,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T10:11:25.594Z","etag":null,"topics":["c-plus-plus","command-line","command-line-app","cpp","directory-tree","search","windows"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hollasch.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-03-10T07:28:13.000Z","updated_at":"2024-10-11T18:58:15.000Z","dependencies_parsed_at":"2024-07-30T00:17:01.692Z","dependency_job_id":"e06877c0-815f-4da8-aef9-6f275a31665c","html_url":"https://github.com/hollasch/pathmatch","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollasch%2Fpathmatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollasch%2Fpathmatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollasch%2Fpathmatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollasch%2Fpathmatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hollasch","download_url":"https://codeload.github.com/hollasch/pathmatch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248589550,"owners_count":21129635,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","command-line","command-line-app","cpp","directory-tree","search","windows"],"created_at":"2024-10-14T09:52:13.000Z","updated_at":"2025-04-12T15:31:31.812Z","avatar_url":"https://github.com/hollasch.png","language":"C++","readme":"pathmatch\n====================================================================================================\n\nA directory/filename pattern match utility for the Windows command line.\n\n(*NOTE*: This project is in a bit of a mess right now, as I've been modifying a bunch of code and\nthen put everything on the backburner for several years. It's actually the topmost project I keep\nmeaning to dive back into and finish for the next release, but no idea when that will actually\nhappen. Just writing this down because I noticed some new forks of this codebase.)\n\n\nDescription\n------------\n`pathmatch` is a tool to match files and directories against a path pattern that supports `?`, `*`,\nand `...` wildcards. These wildcards match the following patterns:\n\n| Token | Description\n|:-----:|:---------------------------------------------------------\n| `?`   | Matches any single character\n| `*`   | Matches zero or more of any character, except '/'.\n| `**`  | Matches zero or more of any character, including '/'.\n| `...` | Matches zero or more of any character, including '/'.\n\n\nExamples\n---------\n\n#### `pathmatch a?c`\n  Matches `abc`, `axc`, and `aac`. Does not match `ac`, `abbc`, or `a/c`.\n\n#### `a*c`\n  Matches \"ac\", \"abc\" and \"azzzzzzzc\". Does not match \"a/c\".\n\n#### `foo...bar`\n  Matches \"foobar\", \"fooxbar\", and \"fooz/blaz/rebar\". Does not match \"fo/obar\", \"fobar\" or\n  \"food/bark\".\n\n#### `pathmatch ....obj`\n  Matches all files anywhere in the current hierarchy that end in \".obj\". Note that the first three\n  periods are interpreted as \"...\", and the fourth one is interpreted as a literal \".\" character.\n\n\nHelp Output\n------------\n```\npathmatch  v0.2.1  https://github.com/hollasch/pathmatch/\npathmatch: Report files and directories matching the specified pattern\nUsage: pathmatch [\u003coptions\u003e] \u003cpattern\u003e ... \u003cpattern\u003e\n\n    `pathmatch` finds and reports all files and directories matching wildcard\n    patterns. These patterns may contain the special characters '?', '*', and\n    '...'. The '?' pattern matches any single character, '*' matches multiple\n    characters except slashes, and '...' matches multiple characters including\n    slashes. For example, the following patterns all match the file\n    \"abc\\def\\ghi\\jkl\": \"abc\\d?f\\??i\\jkl\", \"abc\\*\\*\\jkl\", \"abc\\...\\jkl\", and\n    \"ab...kl\".\n\n    The following command options are supported:\n\nCommand Options:\n    --absolute, -a\n        Report absolute paths. By default, reported paths are relative to the\n        current working directory.\n\n    --files, -f\n        Report files only (no directories). To report directories only, append\n        a slash to the pattern.\n\n    --help, /?, -?, -h\n        Print help information.\n\n    --slash [/|\\], -s[/|\\]\n        Specifies the slash direction to be reported. By default, slashes will\n        be back slashes. Use \"-s/\" to report paths with forward slashes, \"-s\\\"\n        to report backslashes. A space is allowed before the slash.\n\n    --version, -v\n        Print version information.\n\n    --preview\n        Print preview of planned command options.\n```\n\n\nBuilding\n---------\nThis project uses the CMake build tool. CMake is a meta-build system that locates and uses your\nlocal development tools to build the project if possible.\n\nTo build, first install [CMake][]. Then go to the project root directory and run the following\ncommand:\n\n    cmake -B build\n\nThis will locate your installed development tools and configure your project build in the `build/`\ndirectory. After that, whenever you want a new build, run this command:\n\n    cmake --build build\n\nThis will build a debug version of the project, located in `build/Debug/`. To build a release\nversion, run\n\n    cmake --build build --config release\n\nYou can find the built release executable in `build/Release/`.\n\n\nTesting\n--------\nThe `pathmatch` utility uses the `PathMatch::PathMatcher` class, which uses the `wildComp` function.\nThis set is tested at two points: one executable for unit tests of the `PathMatch::PathMatcher`\nclass, and a set of acceptance tests for the `pathmatch` utility.\n\nThe `PathMatcher` unit tests are contained in `src/PathMatcher/pathmatcherTest.cpp`. Currently,\nthese just run a bunch of different patterns which are normalized and printed out for visual\nexamination.\n\nThe `pathmatch` acceptance tests are a Windows command script that run various workflows from the\n`test/` directory, using the `test/test-tree/` directory. To run the tests, use `test/run.cmd` at a\nWindows command prompt. The output is compared against golden image results (`test/*.gold`),\nreporting expected matches and unexpected changes, which can then either be rejected or accepted as\nthe new golden image.\n\n\n\n----\nSteve Hollasch  /  steve@hollasch.net  /  https://github.com/hollasch/pathmatch\n\n\n\n[CMake]: https://cmake.org/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhollasch%2Fpathmatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhollasch%2Fpathmatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhollasch%2Fpathmatch/lists"}