{"id":16014697,"url":"https://github.com/pmonks/multigrep","last_synced_at":"2026-03-05T00:32:55.509Z","repository":{"id":14303131,"uuid":"17011820","full_name":"pmonks/multigrep","owner":"pmonks","description":"A little Clojure library that provides regex-based file grepping and/or text substitution.","archived":false,"fork":false,"pushed_at":"2026-02-25T00:23:37.000Z","size":223,"stargazers_count":14,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-02-25T06:06:00.921Z","etag":null,"topics":["clojure","clojure-library","files","grep","regexes","text-substitution"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pmonks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-02-20T06:50:13.000Z","updated_at":"2025-04-16T03:51:54.000Z","dependencies_parsed_at":"2023-01-13T17:52:50.835Z","dependency_job_id":"c01dea35-f6f0-4d48-bfc5-451664e3b742","html_url":"https://github.com/pmonks/multigrep","commit_stats":{"total_commits":140,"total_committers":2,"mean_commits":70.0,"dds":"0.014285714285714235","last_synced_commit":"1a5c9a49d3a771bbf4ad87e1a2e0355e9645adf0"},"previous_names":["clj-commons/multigrep"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/pmonks/multigrep","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmonks%2Fmultigrep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmonks%2Fmultigrep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmonks%2Fmultigrep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmonks%2Fmultigrep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pmonks","download_url":"https://codeload.github.com/pmonks/multigrep/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmonks%2Fmultigrep/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30102397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T23:59:36.199Z","status":"ssl_error","status_checked_at":"2026-03-04T23:56:48.556Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["clojure","clojure-library","files","grep","regexes","text-substitution"],"created_at":"2024-10-08T15:04:47.956Z","updated_at":"2026-03-05T00:32:55.465Z","avatar_url":"https://github.com/pmonks.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"| | | |\n|---:|:---:|:---:|\n| [**main**](https://github.com/pmonks/multigrep/tree/main) | [![CI](https://github.com/pmonks/multigrep/workflows/CI/badge.svg?branch=main)](https://github.com/pmonks/multigrep/actions?query=workflow%3Alint) | [![Dependencies](https://github.com/pmonks/multigrep/workflows/dependencies/badge.svg?branch=main)](https://github.com/pmonks/multigrep/actions?query=workflow%3Adependencies) |\n| [**dev**](https://github.com/pmonks/multigrep/tree/dev)  | [![CI](https://github.com/pmonks/multigrep/workflows/CI/badge.svg?branch=dev)](https://github.com/pmonks/multigrep/actions?query=workflow%3Alint) | [![Dependencies](https://github.com/pmonks/multigrep/workflows/dependencies/badge.svg?branch=dev)](https://github.com/pmonks/multigrep/actions?query=workflow%3Adependencies) |\n\n[![Latest Version](https://img.shields.io/clojars/v/com.github.pmonks/multigrep)](https://clojars.org/com.github.pmonks/multigrep/) [![Open Issues](https://img.shields.io/github/issues/pmonks/multigrep.svg)](https://github.com/pmonks/multigrep/issues) [![License](https://img.shields.io/github/license/pmonks/multigrep.svg)](https://github.com/pmonks/multigrep/blob/main/LICENSE)\n\n# multigrep\n\nA little Clojure library that provides regex-based file grepping and/or text substitution.\n\n## Installation\n\n`multigrep` is available as a Maven artifact from [Clojars](https://clojars.org/com.github.pmonks/multigrep).\n\n### Trying it Out\n\n#### Clojure CLI\n\n```shell\n$ clj -Sdeps '{:deps {com.github.pmonks/multigrep {:mvn/version \"#.#.#\"}}}'  # Where #.#.# is replaced with an actual version number (see badge above)\n```\n\n#### Leiningen\n\n```shell\n$ lein try com.github.pmonks/spinner\n```\n\n## Usage\n\nThe multigrep functionality is provided by the `multigrep.core` namespace.\n\nRequire it in the REPL:\n\n```clojure\n(require '[multigrep.core :as mg])\n```\n\nRequire it in your application:\n\n```clojure\n(ns my-app.core\n  (:require [multigrep.core :as mg]))\n```\n\nThe library provides two functions - `grep` (for searching for text within files) and `greplace!` (for searching and replacing text within files).\n[The API documentation](https://pmonks.github.io/multigrep/) has full details, and [the unit tests](https://github.com/pmonks/multigrep/blob/main/test/multigrep/core_test.clj) contain comprehensive usage examples.\n\n### API Documentation\n\n[API documentation is available here](https://pmonks.github.io/multigrep/).\n\n## Contributor Information\n\n[Contributing Guidelines](https://github.com/pmonks/multigrep/blob/main/.github/CONTRIBUTING.md)\n\n[Bug Tracker](https://github.com/pmonks/multigrep/issues)\n\n[Code of Conduct](https://github.com/pmonks/multigrep/blob/main/.github/CODE_OF_CONDUCT.md)\n\n### Developer Workflow\n\nThe repository has two permanent branches: `main` and `dev`.  **All development must occur either in branch `dev`, or (preferably) in feature branches off of `dev`.**  All PRs must also be submitted against `dev`; the `main` branch is **only** updated from `dev` via PRs created by the core development team.  All other changes submitted to `main` will be rejected.\n\nThis model allows otherwise unrelated changes to be batched up in the `dev` branch, integration tested there, and then released en masse to the `main` branch, which will trigger automated generation and deployment of the release (Codox docs to GitHub Pages, JARs to Clojars, etc.).\n\n### Why are there so many different groupIds on Clojars for this project?\n\nThe project was originally developed under my personal GitHub account.  In early 2018 it was transferred to the `clj-commons` GitHub organisation, but then, as that group refined their scope and mission, it was determined that it no longer belonged there, and the project were transferred back in late 2021.  During this time the build tooling for the project also changed from Leiningen to tools.build, which created further groupId churn (tools.build introduced special, useful semantics for `com.github.username` groupIds that don't exist with Leiningen or Clojars).\n\n## License\n\nCopyright © 2014 Peter Monks\n\nDistributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).\n\nSPDX-License-Identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmonks%2Fmultigrep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpmonks%2Fmultigrep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmonks%2Fmultigrep/lists"}