{"id":20698414,"url":"https://github.com/ngynkvn/awkp","last_synced_at":"2025-04-22T21:46:19.533Z","repository":{"id":57632811,"uuid":"412599715","full_name":"ngynkvn/awkp","owner":"ngynkvn","description":"A TUI for previewing the results of an awk command in real-time. Written in Go","archived":false,"fork":false,"pushed_at":"2024-11-07T06:04:55.000Z","size":21,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-19T11:04:45.059Z","etag":null,"topics":["ansi","awk","experimental","go","golang","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","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/ngynkvn.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":"2021-10-01T19:50:10.000Z","updated_at":"2023-11-25T14:28:37.000Z","dependencies_parsed_at":"2024-06-20T13:00:53.605Z","dependency_job_id":"1a3e97d8-e4d8-4213-b2ee-800926834228","html_url":"https://github.com/ngynkvn/awkp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngynkvn%2Fawkp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngynkvn%2Fawkp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngynkvn%2Fawkp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngynkvn%2Fawkp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ngynkvn","download_url":"https://codeload.github.com/ngynkvn/awkp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250330712,"owners_count":21413025,"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":["ansi","awk","experimental","go","golang","tui"],"created_at":"2024-11-17T00:24:36.116Z","updated_at":"2025-04-22T21:46:19.503Z","avatar_url":"https://github.com/ngynkvn.png","language":"Go","readme":"# AwkP(review)\n\nA proof of concept for live previewing output of an awk command.\n\nThe application is only about 100 lines of code.\n\n[![asciicast](https://asciinema.org/a/439432.svg)](https://asciinema.org/a/439432)\n\n# Usage:\n\nAfter building the binary with `go build`:\n\n```\n./awkp path_to_file\n```\n\nYou should have `awk` in your path already for this to work correctly.\n\n# Installation\n\n```\ngo install github.com/ngynkvn/awkp@latest\n```\n\n# Motivation\n\nThere's a lot of friction for new users when learning command line tools like\nawk, sed, and grep.\n\nThe motivation was to see how a quick feedback loop could potentially be useful for iteratively building out a command.\n\n`awk` is one of those commands I quickly iterate on until I get the appropriate output.\n\nTUI's are just quicker to pull up than an online playground, and awk was a\nsimple target for experimenting ideas with how people interact with computers.\n\n\nIf you're interested in some cool TUI libraries, I recommend checking some of\nthese:\n\n- _Go_, the language and library this tool was written in,\n  https://github.com/rivo/tview\n  - This one has come to my attention recently: https://github.com/charmbracelet/bubbletea\n- _Rust_, https://github.com/fdehau/tui-rs\n- _Python_,\n  https://github.com/willmcgugan/textual\n\n# Nice to haves\n\nSome extensions I think would be nice to have:\n\n- Scrolling the output if it's longer than the text preview.\n- Truncating the number of records returned in the preview (like\n  `awk {print} | head -n 5`)\n- Descriptions for the different flags that awk supports, and interative buttons\n  / fields for setting them.\n\n# Dependencies\n\n- https://github.com/rivo/tview\n- https://github.com/kballard/go-shellquote\n- https://gopkg.in/alecthomas/kingpin.v2\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngynkvn%2Fawkp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fngynkvn%2Fawkp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngynkvn%2Fawkp/lists"}