{"id":20512557,"url":"https://github.com/jpluscplusm/jolsat","last_synced_at":"2026-04-22T09:06:32.255Z","repository":{"id":93632621,"uuid":"276734482","full_name":"jpluscplusm/jolsat","owner":"jpluscplusm","description":"Jonathan's OnLine / Streaming Algorithm Tool","archived":false,"fork":false,"pushed_at":"2020-07-11T12:13:06.000Z","size":39,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"trunk","last_synced_at":"2024-12-06T22:19:17.116Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jpluscplusm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-07-02T19:58:44.000Z","updated_at":"2020-07-11T12:13:09.000Z","dependencies_parsed_at":"2023-03-21T19:53:06.432Z","dependency_job_id":null,"html_url":"https://github.com/jpluscplusm/jolsat","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jpluscplusm/jolsat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpluscplusm%2Fjolsat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpluscplusm%2Fjolsat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpluscplusm%2Fjolsat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpluscplusm%2Fjolsat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jpluscplusm","download_url":"https://codeload.github.com/jpluscplusm/jolsat/tar.gz/refs/heads/trunk","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpluscplusm%2Fjolsat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32128713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T08:34:57.708Z","status":"ssl_error","status_checked_at":"2026-04-22T08:34:55.583Z","response_time":58,"last_error":"SSL_read: 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":[],"created_at":"2024-11-15T20:41:58.870Z","updated_at":"2026-04-22T09:06:32.240Z","avatar_url":"https://github.com/jpluscplusm.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jonathan's OnLine / Streaming Algorithm Tool: jolsat\n\n`jolsat` is a command line utility modelled after the venerable `cut` tool, but with the added ability to display summary statistics about its input. It uses \"online\" and \"streaming\" algorithms to calculate these statistics, which allows it to print them as it processes its input, without having to hold the entire dataset in memory. Because of this choice, it is able to process input streams indefinitely, without increasing its memory use in an unbounded fashion. This is useful when tailing live log files, for example.\n\n## Features\n\n- Produces [exactly the same output](#compatibility-with-cut) as `cut`, given only `-d` and `-f` parameters\n- Field transformation before statistical processing\n- Timestamp insertion based on record arrival time\n- Automatic and tuneable training mode produces full-fidelity statistics for smaller datasets\n\n### Compatibility with `cut`\n\nIt is a bug for `jolsat`:\n\n- given **any** input\n- with **any** invocation containing only `-d` and `-f` parameters, properly formed\n- to produce different output to `cut`, called with the same parameters and input.\n\nNB all short-form parameters must have a space seperating them from their values. i.e. `jolsat -d ' ' -f 1-10` as opposed to `jolsat -d' ' -f1-10`. Both forms are acceptable to `cut`; compatibility is only assured with the space-containing form.\n\nThere is one exception to this: where the `-f` parameter uses `jolsat`'s enhanced ability to repeat or re-order output fields. For `cut` compatibility the `-f` parameter must only reference increasing field numbers.\n\nThis also explicitly rules out the cases where `cut` is invoked with no parameters, or`cut -d \u003cCHAR\u003e` is invoked *without* a `-f` parameter. Both of these `cut` invocations produce an error, but `jolsat` treats both as a request to behave exactly like `cut -f 1-`: to mirror stdin to stdout, without erroring. This allows for easier incremental exploration of an input stream, where the field list input param may be built up over time, and is a further byte-for-byte compatibility guarantee:\n\nIt is a bug for `jolsat`:\n\n- with **any** input\n- when invoked with no parameters\n- or invoked with only a properly formed `-d \u003cCHAR\u003e` parameter\n- to produce different output to `cut -f1-`, given the same input steam.\n\n## Usage\n\n### Basic arguments\n\n```\n$ seq 1 20 | xargs -n5 | jolsat\n1 2 3 4 5\n6 7 8 9 10\n11 12 13 14 15\n16 17 18 19 20\n$ seq 1 20 | xargs -n5 | jolsat -d ' '\n1 2 3 4 5\n6 7 8 9 10\n11 12 13 14 15\n16 17 18 19 20\n```\n\n### Specifying fields and field ranges, compatible with `cut`\n\n```\n$ seq 1 20 | xargs -n5 | jolsat -d ' ' -f 2,4-5\n2 4 5\n7 9 10\n12 14 15\n17 19 20\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpluscplusm%2Fjolsat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjpluscplusm%2Fjolsat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpluscplusm%2Fjolsat/lists"}