macOS
brew install goawklocal Homebrew formula metadata
sudo port install goawkMacPorts ports tree · lang/goawk/Portfile · source: api.github.com
brew
POSIX-compliant AWK interpreter written in Go. Version 1.31.0 via Homebrew; verified from local package data.
install
brew install goawklocal Homebrew formula metadata
sudo port install goawkMacPorts ports tree · lang/goawk/Portfile · source: api.github.com
sudo apk add goawkAlpine Linux edge package indexes · goawk · source: dl-cdn.alpinelinux.org
sudo apt install goawkDebian stable package indexes · goawk · source: deb.debian.org
nix profile install nixpkgs#goawknixpkgs package indexes · pkgs/by-name/go/goawk/package.nix · source: api.github.com
overview
POSIX-compliant AWK interpreter written in Go
history
GoAWK is Ben Hoyt's POSIX-compatible AWK interpreter written in Go, with command-line and embeddable library use cases. It began as a compact interpreter inspired by The AWK Programming Language and later grew CSV/TSV support, a bytecode virtual machine, code coverage, and an experimental AWK-to-Go compiler.
The repository was created in June 2018, and the author's November 2018 article described GoAWK as an AWK interpreter written in Go, explaining its lexer, parser, resolver, tree-walking interpreter, testing, and performance work. The README says it is feature-complete and tested against the one true AWK and GNU AWK test suites.
GoAWK moved beyond the original tree-walking interpreter in the v1.15 era, when it switched to a bytecode compiler and virtual machine for better performance. In May 2022, the author added native CSV and TSV support, including CSV input/output modes and named fields, while keeping the project POSIX-compatible.
The project continued to add package-nerd features that ordinary awk implementations rarely expose, including embeddable Go APIs, code coverage support in v1.21.0, and the experimental AWKGo compiler.
GoAWK is adopted as both a standalone awk-compatible command and an embeddable Go package. The README notes use in the Redpanda Connect stream processor and by the software team at the library of the University of Antwerp, the latter also sponsoring CSV work.
Distribution through Go modules, release binaries, Homebrew, Debian, MacPorts, Nix, and other package managers makes GoAWK a portable AWK option for users who want POSIX behavior, CSV-aware one-liners, or an AWK engine inside Go programs.
As a CLI, GoAWK accepts ordinary awk programs and files, can be installed with go install, and supports CSV/TSV processing with -i and -o modes. As a library, Go programs can parse and execute AWK programs directly, reuse parsed programs, and configure interpreter behavior.
GoAWK matters because it connects two package cultures: the old Unix text-processing tradition of awk one-liners and the modern Go preference for single static binaries and embeddable packages. It is a practical example of reimplementing a standard Unix language with Go's parser, module, testing, and distribution ecosystem.
Its CSV support is especially notable because classic awk field splitting is convenient but not CSV-safe. GoAWK gives package users a drop-in-ish awk command that handles real CSV and TSV data while still aiming at POSIX AWK compatibility.
security posture
generalized runtime or code generation signal.
yellow risk · medium confidence · runtime
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
goawk | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/benhoyt/goawk
install metadata
| Package key | brew:goawk |
|---|---|
| Version | 1.31.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/goawk |
| Homepage | https://benhoyt.com/writings/goawk/ |
| Repository | https://github.com/benhoyt/goawk |
| Upstream docs | https://github.com/benhoyt/goawk#readme |
| License | MIT |
| Source archive | https://github.com/benhoyt/goawk/archive/refs/tags/v1.31.0.tar.gz |
| Build dependencies | go |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | goawk |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
goawk 1.29.0-1
POSIX-compliant AWK interpreter written in Go, with CSV support (program)
https://github.com/benhoyt/goawk
sudo apt install goawkgolang-github-benhoyt-goawk-dev 1.29.0-1
POSIX-compliant AWK interpreter written in Go, with CSV support (library)
https://github.com/benhoyt/goawk
sudo apt install golang-github-benhoyt-goawk-devgoawk
nix profile install nixpkgs#goawkgoawk 1.30.1-r6
POSIX-compliant AWK interpreter written in Go
https://github.com/benhoyt/goawk
sudo apk add goawkgoawk-doc 1.30.1-r6
POSIX-compliant AWK interpreter written in Go (documentation)
https://github.com/benhoyt/goawk
sudo apk add goawk-docgoawk
sudo port install goawksource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.