{"id":24122189,"url":"https://github.com/tlinden/tablizer","last_synced_at":"2025-06-24T21:40:01.721Z","repository":{"id":61249611,"uuid":"542697123","full_name":"TLINDEN/tablizer","owner":"TLINDEN","description":"Manipulate tabular output of other programs","archived":false,"fork":false,"pushed_at":"2025-01-10T17:34:04.000Z","size":2488,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-10T18:34:03.214Z","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/TLINDEN.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"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}},"created_at":"2022-09-28T16:52:11.000Z","updated_at":"2025-01-10T17:34:07.000Z","dependencies_parsed_at":"2024-12-13T10:34:03.061Z","dependency_job_id":"48e67a65-6112-4458-b04b-ac1dd3adbde4","html_url":"https://github.com/TLINDEN/tablizer","commit_stats":{"total_commits":132,"total_committers":3,"mean_commits":44.0,"dds":0.06060606060606055,"last_synced_commit":"a9bb79b01cf3d72421d0019c65eb6f9fa5217c37"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TLINDEN%2Ftablizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TLINDEN%2Ftablizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TLINDEN%2Ftablizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TLINDEN%2Ftablizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TLINDEN","download_url":"https://codeload.github.com/TLINDEN/tablizer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233477088,"owners_count":18682137,"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":[],"created_at":"2025-01-11T11:38:52.219Z","updated_at":"2025-06-24T21:40:01.700Z","avatar_url":"https://github.com/TLINDEN.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Actions](https://github.com/tlinden/tablizer/actions/workflows/ci.yaml/badge.svg)](https://github.com/tlinden/tablizer/actions)\n[![License](https://img.shields.io/badge/license-GPL-blue.svg)](https://github.com/tlinden/tablizer/blob/master/LICENSE)\n[![Go Report Card](https://goreportcard.com/badge/github.com/tlinden/tablizer)](https://goreportcard.com/report/github.com/tlinden/tablizer)\n\n## tablizer - Manipulate tabular output of other programs\n\nTablizer  can   be  used   to  re-format   tabular  output   of  other\nprograms. While you  could do this using standard unix  tools, in some\ncases it's a hard job.\n\nUsage:\n```default\nUsage:\n  tablizer [regex] [file, ...] [flags]\n\nOperational Flags:\n  -c, --columns string              Only show the speficied columns (separated by ,)\n  -v, --invert-match                select non-matching rows\n  -n, --no-numbering                Disable header numbering\n  -N, --no-color                    Disable pattern highlighting\n  -H, --no-headers                  Disable headers display\n  -s, --separator string            Custom field separator\n  -k, --sort-by int                 Sort by column (default: 1)\n  -z, --fuzzy                       Use fuzzy search [experimental]\n  -F, --filter field[!]=reg         Filter given field with regex, can be used multiple times\n  -T, --transpose-columns string    Transpose the speficied columns (separated by ,)\n  -R, --regex-transposer /from/to/  Apply /search/replace/ regexp to fields given in -T\n\nOutput Flags (mutually exclusive):\n  -X, --extended                    Enable extended output\n  -M, --markdown                    Enable markdown table output\n  -O, --orgtbl                      Enable org-mode table output\n  -S, --shell                       Enable shell evaluable output\n  -Y, --yaml                        Enable yaml output\n  -C, --csv                         Enable CSV output\n  -A, --ascii                       Default output mode, ascii tabular\n  -L, --hightlight-lines            Use alternating background colors for tables\n  -y, --yank-columns                Yank specified columns (separated by ,) to clipboard,\n                                    space separated\n\nSort Mode Flags (mutually exclusive):\n  -a, --sort-age                    sort according to age (duration) string\n  -D, --sort-desc                   Sort in descending order (default: ascending)\n  -i, --sort-numeric                sort according to string numerical value\n  -t, --sort-time                   sort according to time string\n\nOther Flags:\n      --completion \u003cshell\u003e         Generate the autocompletion script for \u003cshell\u003e\n  -f, --config \u003cfile\u003e              Configuration file (default: ~/.config/tablizer/config)\n  -d, --debug                      Enable debugging\n  -h, --help                       help for tablizer\n  -m, --man                        Display manual page\n  -V, --version                    Print program version\n```\n\nLet's take this output:\n```\n% kubectl get pods -o wide\nNAME                        READY   STATUS    RESTARTS      AGE\nrepldepl-7bcd8d5b64-7zq4l   1/1     Running   1 (69m ago)   5h26m\nrepldepl-7bcd8d5b64-m48n8   1/1     Running   1 (69m ago)   5h26m\nrepldepl-7bcd8d5b64-q2bf4   1/1     Running   1 (69m ago)   5h26m\n```\n\nBut you're only interested in the  NAME and STATUS columns. Here's how\nto do this with tablizer:\n\n```\n% kubectl get pods | tablizer \nNAME(1)                      READY(2) STATUS(3)  RESTARTS(4)    AGE(5)\nrepldepl-7bcd8d5b64-7zq4l    1/1      Running    1 (69m ago)    5h26m\nrepldepl-7bcd8d5b64-m48n8    1/1      Running    1 (69m ago)    5h26m\nrepldepl-7bcd8d5b64-q2bf4    1/1      Running    1 (69m ago)    5h26m\n\n% kubectl get pods | tablizer -c 1,3\nNAME(1)                      STATUS(3)\nrepldepl-7bcd8d5b64-7zq4l    Running\nrepldepl-7bcd8d5b64-m48n8    Running\nrepldepl-7bcd8d5b64-q2bf4    Running \n```\n\nAnother use case is when the tabular  output is so wide that lines are\nbeing broken and the whole output  is completely distorted.  In such a\ncase you can use the `-o extended  | -X` flag to get an output similar\nto `\\x` in `psql`:\n\n```\n% kubectl get pods | tablizer -X\n    NAME: repldepl-7bcd8d5b64-7zq4l\n   READY: 1/1\n  STATUS: Running\nRESTARTS: 1 (71m ago)\n     AGE: 5h28m\n\n    NAME: repldepl-7bcd8d5b64-m48n8\n   READY: 1/1\n  STATUS: Running\nRESTARTS: 1 (71m ago)\n     AGE: 5h28m\n\n    NAME: repldepl-7bcd8d5b64-q2bf4\n   READY: 1/1\n  STATUS: Running\nRESTARTS: 1 (71m ago)\n     AGE: 5h28m\n```\n\nTablize can read one or more files or - if none specified - from STDIN.\n\nYou can also specify a regex pattern to reduce the output:\n\n```\n% kubectl get pods | tablizer q2bf4\nNAME(1)                      READY(2) STATUS(3)  RESTARTS(4)    AGE(5)\nrepldepl-7bcd8d5b64-q2bf4    1/1      Running    1 (69m ago)    5h26m\n```\n\nSometimes a filter regex is to broad  and you wish to filter only on a\nparticular column. This is possible using `-F`:\n```\n% kubectl get pods | tablizer -n -Fname=2\nNAME                            READY   STATUS  RESTARTS        AGE\nrepldepl-7bcd8d5b64-q2bf4       1/1     Running 1 (69m ago)     5h26m\n```\n\nHere we filtered  the `NAME` column for `2`, which  would have matched\notherwise on all rows.\n\nThere are more output modes like org-mode (orgtbl) and markdown.\n\nYou can also use it to modify certain cells using regular expression\nmatching. For example:\n\n```shell\nkubectl get pods | tablizer -n -T4 -R '/ /-/'\nNAME                            READY   STATUS  RESTARTS        AGE\nrepldepl-7bcd8d5b64-7zq4l       1/1     Running 1-(69m-ago)     5h26m\nrepldepl-7bcd8d5b64-m48n8       1/1     Running 1-(69m-ago)     5h26m\nrepldepl-7bcd8d5b64-q2bf4       1/1     Running 1-(69m-ago)     5h26m\n```\n\nHere, we modified the 4th column (`-T4`) by replacing every space with\na dash. If you need to work with `/` characters, you can also use any\nother separator, for instance: `-R '| |-|'`.\n\n\n\n## Demo\n\n[![asciicast](demo/tablizer-demo.gif)](https://asciinema.org/a/9FKc3HPnlg8D2X8otheleEa9t)\n\n## Installation\n\nThere are multiple ways to install **tablizer**:\n\n- Go to the [latest release page](https://github.com/tlinden/tablizer/releases/latest),\n  locate the binary for your operating system and platform.\n  \n  Download it and put it into some directory within your `$PATH` variable.\n  \n- The release page also contains a tarball for every supported platform. Unpack it\n  to some temporary directory, extract it and execute the following command inside:\n  ```\n  sudo make install\n  ```\n  \n- You can also install from source. Issue the following commands in your shell:\n  ```\n  git clone https://github.com/TLINDEN/tablizer.git\n  cd tablizer\n  make\n  sudo make install\n  ```\n\nIf you  do not find a  binary release for your  platform, please don't\nhesitate to ask me about it, I'll add it.\n\n## Documentation\n\nThe  documentation  is  provided  as  a unix  man-page.   It  will  be\nautomatically installed if  you install from source.  However, you can\nread the man-page online:\n\nhttps://github.com/TLINDEN/tablizer/blob/main/tablizer.pod\n\nOr if you cloned  the repository you can read it  this way (perl needs\nto be installed though): `perldoc tablizer.pod`.\n\nIf you have the binary installed, you  can also read the man page with\nthis command:\n\n    tablizer --man\n\n## Getting help\n\nAlthough I'm happy to hear from tablizer users in private email,\nthat's the best way for me to forget to do something.\n\nIn order to report a bug, unexpected behavior, feature requests\nor to submit a patch, please open an issue on github:\nhttps://github.com/TLINDEN/tablizer/issues.\n\n## Prior Art\n\nWhen I started with tablizer I was not aware that other tools\nexist. Here is a non-exhausive list of the ones I find especially\nawesome:\n\n### [miller](https://github.com/johnkerl/miller)\n\nThis is a really powerful tool to work with tabular data and it also\nallows other inputs as json, csv etc. You can filter, manipulate,\ncreate pipelines, there's even a programming language builtin to do\neven more amazing things.\n\n### [csvq](https://github.com/mithrandie/csvq)\n\nCsvq allows you to query CSV and TSV data using SQL queries. How nice\nis that? Highly recommended if you have to work with a large (and\nwide) dataset and need to apply a complicated set of rules.\n\n### [goawk](https://github.com/benhoyt/goawk)\n\nGoawk is a 100% POSIX compliant AWK implementation in GO, which also\nsupports CSV and TSV data as input (using `-i csv` for example). You\ncan apply any kind of awk code to your tabular data, there are no\nlimit to your creativity!\n\n### [teip](https://github.com/greymd/teip)\n\nI particularly like teip, it's a real gem. You can use it to drill\n\"holes\" into your tabular data and modify these \"holes\" using small\nexternal unix commands such as grep or sed. The possibilities are\nendless, you can even use teip to modify data inside a hole created by\nteip. Highly recommended.\n\n\n## Copyright and license\n\nThis software is licensed under the GNU GENERAL PUBLIC LICENSE version 3.\n\n## Authors\n\nT.v.Dein \u003ctom AT vondein DOT org\u003e\n\n## Project homepage\n\nhttps://github.com/TLINDEN/tablizer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftlinden%2Ftablizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftlinden%2Ftablizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftlinden%2Ftablizer/lists"}