goawk icon indicating copy to clipboard operation
goawk copied to clipboard

A POSIX-compliant AWK interpreter written in Go, with CSV support

Results 19 goawk issues
Sort by recently updated
recently updated
newest added

It would be useful to have the standard build-in functions for arithmetic, string and time manipulation. https://www.gnu.org/software/gawk/manual/html_node/Built_002din.html Particularly in my use case I really miss `mktime` and `strftime`

It'd be good to add a library of various functions to help with processing CSV files (or other tabular data, it wouldn't be limited to CSV). For example: * The...

Per discussion on issue #33 (from [here](https://github.com/benhoyt/goawk/issues/33#issuecomment-782601242) down), GoAWK handles CR LF (Windows) line endings differently from gawk (I haven't tried awk or mawk). GoAWK doesn't include the CR in...

This PR adds a `lib.awk` library with various helper functions, intended mainly for CSV processing and CSV file creation. The idea here is to try these out in pure AWK...

This is a manifestation of https://github.com/golang/go/issues/21922 - use pipes to fix it. Tricky! Fixes #122.

`TestExecuteContextSystemTimeout` takes 4s, indicating that the cancellation of the context isn't actually killing the "sleep 4" command. Presumably I was wrong about being wrong [here](https://github.com/benhoyt/goawk/issues/104#issuecomment-1129726588). :-) I guess we need...

Per @arnoldrobbins comment https://github.com/rmyorston/busybox-w32/issues/174#issuecomment-599194834, the POSIX spec says that `length` and similar functions should work with characters, not bytes. The [POSIX spec](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html) says: > The index, length, match, and substr...

Two cases: 1) `echo 2 3 4 | goawk '{ $$0++; print $0 }'` prints `2 4 4` instead of `3`. I think this is happening because we parse this...

This is the other PR in context of #144. Here I tried to address the item 1. of your list @benhoyt. Eventually I've found semi-elegant solution of how to simplify...

This implements a simple `FileReader` type that tracks files added to it with `AddFile()` and their number of source lines, and then lets you look up which file and file-line...