Understanding Awk

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • csvinfo

    A small util to show max column lengths for a passed CSV file.

  • A long while ago I wrote up a little processor to determine field lengths in a given file - I forgot the original reason. ( https://github.com/sullivant/csvinfo )

    However, I feel I really should have taken the time to learn Awk better as it could probably be done there, and simply! (It was a good excuse to tinker with rust, but that's an aside.)

  • busybox-w32

    WIN32 native port of BusyBox.

  • The problem is that awk is in POSIX, and perl is not.

    There are two common sources of awk for Windows, for example, that drop one exe to provide the interpreter:

    http://unxutils.sourceforge.net/

    https://frippery.org/busybox/

    Perl simply wasn't designed to do that.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • awk

    Random AWK code (by geary)

  • I used to love Awk! I still do, even if I don't use it much any more.

    Awk has a reputation for being hard to read (as noted in stevebmark's comment), but when I was using it actively, I tried to treat it as a serious programming language and write readable programs in it.

    Several years ago I tracked down a couple of my old Awk programs from around 1990 and posted them here:

    https://github.com/geary/awk

    SHANEY.AWK is an implementation of the infamous Mark V. Shaney:

    https://www.clear.rice.edu/comp200/09fall/textriff/sci_am_pa...

    This was probably the first program that made me really impressed with Awk. People were writing rather complicated Shaney implementations in C, and I thought, "this could be really simple in Awk." And it was!

    LJPII.AWK is the Awk program I'm most proud of. This was in the days when we had tiny screens and no multiple monitors and you always printed out your code to read it. In my circles we also fond of inserting "separator lines" between functions, in various formats such as this one:

      // - - - - - - - - - - - - - - - - - -

  • Awk-Batteries

    Public AWK Directory

  • csvquote

    Enables common unix utlities like cut, awk, wc, head to work correctly with csv data containing delimiters and newlines

  • There is a small program I wrote called csvquote[1] that can be used to sanitize input to awk so it can rely on delimiter characters (commas) to always mean delimiters. The results from awk then get piped through the same program at the end to restore the commas inside the field values.

    Also works for other text processing tools like cut, sed, sort, etc.

    [1] https://github.com/dbro/csvquote

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts