{"id":18410556,"url":"https://github.com/vesche/bombchu","last_synced_at":"2026-02-28T06:23:51.184Z","repository":{"id":62560315,"uuid":"484299582","full_name":"vesche/bombchu","owner":"vesche","description":"💥 💥 💥 ","archived":false,"fork":false,"pushed_at":"2022-06-29T03:44:01.000Z","size":14,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-27T06:12:43.962Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vesche.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-22T04:52:15.000Z","updated_at":"2025-02-19T21:39:56.000Z","dependencies_parsed_at":"2022-11-03T14:15:12.490Z","dependency_job_id":null,"html_url":"https://github.com/vesche/bombchu","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vesche/bombchu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesche%2Fbombchu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesche%2Fbombchu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesche%2Fbombchu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesche%2Fbombchu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vesche","download_url":"https://codeload.github.com/vesche/bombchu/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesche%2Fbombchu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273409632,"owners_count":25100446,"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","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-06T03:32:45.133Z","updated_at":"2025-10-06T01:21:35.171Z","avatar_url":"https://github.com/vesche.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bombchu\n\nSimple data manipulation tool with a bang, inspired by [qu](https://github.com/jayswan/qu).\n\n## Install\n\n\u003cimg src=\"https://i.imgur.com/5XH9tQ2.png\" align=\"left\"\u003e\n\n```\npip3 install bombchu --user\n```\n* Ensure that where Python cli tools are installed on your system is in your PATH.\n\n## Usage\n\n```\n❯ # break on a delimiter \n❯ echo \"d,d,b,a,a,b,c,d,d,e\" | bombchu -d ','\n['d', 'd', 'b', 'a', 'a', 'b', 'c', 'd', 'd', 'e']\n\n❯ # same thing, but sort unique\n❯ echo \"d,d,b,a,a,b,c,d,d,e\" | bombchu -d ',' -s -u\n['a', 'b', 'c', 'd', 'e']\n\n❯ # now output it separated by semi-colons\n❯ echo \"d,d,b,a,a,b,c,d,d,e\" | bombchu -d ',' -s -u -o '; '\na; b; c; d; e\n\n❯ # i got some csv data that looks like this...\n❯ head -n 2 foo.csv\nstart_time,ip,port\n\"2022-04-10 06:00:10\",10.13.37.42,51111\n\n❯ # let's extract all the unique ips sorted and put them on new lines defanged\n❯ cat foo.csv | bombchu -c ip -u -n --defang --sips\n10[.]13[.]37[.]42\n10[.]22[.]22[.]11\n10[.]44[.]44[.]22\n\n❯ # i gotta put this data in to splunk now in term format\n❯ cat foo.csv | bombchu -c ip -u --term\n(TERM(10.22.22.11) OR TERM(10.13.37.42) OR TERM(10.44.44.22))\n\n❯ # now i got some json data that looks like this...\n❯ cat foo.json\n{\n    \"foo\": {\n        \"id\": 1234\n    },\n    \"foo2\": {\n        \"id\": 1337\n    },\n    \"foo3\": {\n        \"id\": 1111\n    }\n}\n\n❯ # i need all these ids sorted\n❯ cat foo.json | bombchu -j id -s\n[1111, 1234, 1337]\n\n❯ # gimme those ids on new lines with back ticks\n❯ cat foo.json | bombchu -j id -s -n --add '`'\n`1111`\n`1234`\n`1337`\n\n❯ # now i got some log file that looks like this...\n❯ head -n 2 foo.log\n{\"name\": \"joe\", \"id\": 4242, \"action\": \"bleh\"}\n{\"name\": \"bob\", \"id\": 1337, \"action\": \"blah\"}\n\n❯ # let's see the users in these logs\n❯ cat foo.log | bombchu -l name -o ', '\njoe, bob, bob, bob, bob, john, john, bob, bob, susan, susan, bob\n\n❯ # now i need unique users and ids next to each other\n❯ cat foo.log | bombchu -l id,name -n -s -u\n1337,bob\n1337,john\n1337,susan\n4242,joe\n\n❯ # i need these sorted unique and ready to go into splunk\n❯ cat foo.log | bombchu -l name -s -u --splunk\n(\"bob\", \"joe\", \"john\", \"susan\")\n\n❯ # now throw that on my clipboard\n❯ cat foo.log | bombchu -l name -s -u --splunk --copy\n(\"bob\", \"joe\", \"john\", \"susan\")\n\n❯ # read in a python list\n❯ echo \"['62', '41', '27', '111', '55']\" | bombchu -p --addl '=' -n\n=62\n=41\n=27\n=111\n=55\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvesche%2Fbombchu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvesche%2Fbombchu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvesche%2Fbombchu/lists"}