Automic VaultAutomic Vault

brew

Install goawk with Homebrew, apk, apt, MacPorts, Nix

POSIX-compliant AWK interpreter written in Go. Version 1.31.0 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install goawk

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install goawk

MacPorts ports tree · lang/goawk/Portfile · source: api.github.com

Linux

Alpine Linux apkverified · 92%
sudo apk add goawk

Alpine Linux edge package indexes · goawk · source: dl-cdn.alpinelinux.org

Debian aptverified · 92%
sudo apt install goawk

Debian stable package indexes · goawk · source: deb.debian.org

Nixverified · 92%
nix profile install nixpkgs#goawk

nixpkgs package indexes · pkgs/by-name/go/goawk/package.nix · source: api.github.com

overview

Package summary

POSIX-compliant AWK interpreter written in Go

Commands and aliases

  • goawk

history

Project history and usage

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.

Project history

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.

Adoption history

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.

How it is used

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.

Why package nerds care

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.

Timeline

  • 2018: The GoAWK repository was created and v1.0.0 was tagged.
  • 2018: The author published the original GoAWK design and performance article.
  • 2022: GoAWK adopted a bytecode compiler and virtual machine around the v1.15 release.
  • 2022: GoAWK added native CSV and TSV support.
  • 2022: GoAWK v1.21.0 added code coverage support.
  • 2025: GoAWK v1.31.0 was tagged with minor fixes and a minimum Go version update.

Related projects

  • GoAWK is related to AWK, BWK awk, GNU Awk, POSIX awk, Redpanda Connect, the Go module ecosystem, and AWKGo, the experimental AWK-to-Go compiler included in the repository.

security posture

Risk level: yellow

generalized runtime or code generation signal.

Risk classifier

yellow risk · medium confidence · runtime

Why

  • generalized runtime or code generation signal

Signals

  • text:interpreter

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 6 platform targets.
  • Build metadata lists 1 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
goawkcliglobal executable

freshness

Version and 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.

page generated2026-07-08
manager version1.31.0
manager updated
local dataok
upstreamcurrent
latest detectedv1.31.0

https://github.com/benhoyt/goawk

  • infoNo package-manager update timestamp was available.low confidence

install metadata

Package metadata

Package keybrew:goawk
Version1.31.0
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/goawk
Homepagehttps://benhoyt.com/writings/goawk/
Repositoryhttps://github.com/benhoyt/goawk
Upstream docshttps://github.com/benhoyt/goawk#readme
LicenseMIT
Source archivehttps://github.com/benhoyt/goawk/archive/refs/tags/v1.31.0.tar.gz
Build dependenciesgo
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namegoawk
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Debian apt95%

goawk 1.29.0-1

POSIX-compliant AWK interpreter written in Go, with CSV support (program)

https://github.com/benhoyt/goawk

sudo apt install goawk
  • Section: interpreters
  • Architecture: amd64
  • normalized package name match
  • Matched by: Goawk
Debian stable package indexes · deb.debian.org · Debian stable package indexes: goawk from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Debian apt95%

golang-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-dev
  • Section: golang
  • Architecture: all
  • Source Package: goawk
  • normalized package name match
  • Matched by: Goawk
Debian stable package indexes · deb.debian.org · Debian stable package indexes: golang-github-benhoyt-goawk-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Nix95%

goawk

nix profile install nixpkgs#goawk
  • normalized package name match
  • Matched by: Goawk
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/go/goawk/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
apk95%

goawk 1.30.1-r6

POSIX-compliant AWK interpreter written in Go

https://github.com/benhoyt/goawk

sudo apk add goawk
  • License: MIT
  • Architecture: x86_64
  • Source Package: goawk
  • 1 provides
  • normalized package name match
  • Matched by: Goawk
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: goawk from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

goawk-doc 1.30.1-r6

POSIX-compliant AWK interpreter written in Go (documentation)

https://github.com/benhoyt/goawk

sudo apk add goawk-doc
  • License: MIT
  • Architecture: x86_64
  • Source Package: goawk
  • normalized package name match
  • Matched by: Goawk
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: goawk-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
MacPorts95%

goawk

sudo port install goawk
  • normalized package name match
  • Matched by: Goawk
MacPorts ports tree · api.github.com · MacPorts ports tree: lang/goawk/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment