goawk
gojq
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
goawk
- GoAWK, an Awk interpreter written in Go (2018)
-
The Awk Programming Language, Second Edition
TIL: GoAWK [1] - A POSIX-compliant AWK interpreter written in Go, with CSV support.
[1]: https://github.com/benhoyt/goawk
- Looking for a script for csv file
-
Anyone else doing compiler work in Golang?
Another nice project that I have used from time to time (and a very good source for insight) is the awk interpreter written in go https://github.com/benhoyt/goawk
-
Tool to interact with CSV
No, I want exactly the opposite - it should be a , b,c as a single string field containing a literal comma, and c. For example, https://github.com/benhoyt/goawk has csv support. https://github.com/benhoyt/goawk/blob/master/docs/csv.md - more info.
-
Why does awk parse '1&&x=1' as '1&&(x=1)' not '(1&&x)=1' when '&&' is high precedence than '='?
I've had a go at solving this in this PR -- feedback welcome. I don't love it, but oh well, it solves the problem at hand. Your comment pointed me in the right direction, thanks again.
-
Looking for programming languages created with Go
There are quite a few re-implementations of scripting languages like Lua in Go. I've written an AWK interpreter in Go.
-
Oracle DB support in Benthos
github.com/benhoyt/goawk -> this library lets you embed an AWK runtime in your applications, very easy to use and useful for enabling some powerful scripting in things you build
-
Brian Kernighan adds Unicode support to Awk (May, 2022)
Yes, that's right. With my simplistic UTF-8-based implementation it turned length() -- for example -- from O(1) to O(N), turning O(N) algorithms which use length() into O(N^2). See this issue: https://github.com/benhoyt/goawk/issues/93
Similar with substr() and other string functions, which when operating as bytes are O(1), but become O(N) when trying to count the number of codepoints as UTF-8.
GNU Gawk has a fancier approach, which stores strings as UTF-8 as long as it can, but converts to UTF-32 if it needs to (eg: the string is non-ASCII and you call substr).
It looks like Brian Kernighan's code has the same issue with length() and substr(). I'm going to try to email him about this, as I think it's kind of a performance blocker.
-
Ask HN: Is having a Personal blog/brand worth it for you?
I'm not sure if it was via my personal website or just my GitHub profile, but I got my current job at Canonical due to the CTO there reaching out about my GoAWK project (https://github.com/benhoyt/goawk). I get regular recruitment emails because I have my CV/resume online: most of them are very low-effort, but 1 in 20 or something are interesting emails where the recruiter has actually looked at my website and will tailor it personally. I also just enjoy technical writing, and get joy out of sharing it on HN. So it's "worth it" for me.
gojq
-
To a Man with `Jq`, Everything Looks Like JSON
Yeap i've talked to itchyny quite a lot about various changes https://github.com/itchyny/gojq/issues/153 and also upstreamed quite a lot https://github.com/itchyny/gojq/issues?q=author%3Awader like custom iterators (to allow eval, own iterators and "empty" functions), query marshalling (query rewrite tricks) and a bunch of small things and bug fixes. But the largest change to add a JQValue interface is quite complex, other changes like extended literals is also a bit tricky.
Hmm weird list of changes for https://github.com/wader/gojq/compare/fq...itchyny:gojq:main but i guess it is because i haven't kept my main branch in sync. The fq branch should be based on latest gojq/main as of now. I usually try to rebase as quick as possible.
Let me know if you have any other questions or want to help out! maybe email etc as i usually don't check HN comments replies that often :)
- Make JSON Greppable
- Jaq – A jq clone focused on correctness, speed, and simplicity
-
jq 1.7 Released
gojq has support for yaml input (via a very annoying argument name) and also has the golang property of "curl binary; chmod; profit": https://github.com/itchyny/gojq#difference-to-jq
It's error reporting is also clang-vs-gcc level wizardry, and I often use it to get a helpful message instead of "ENOWORKY" from jq (I haven't tried 1.7 yet, so it could be better for all I know)
-
First release of jq in 5 years
Some competition for https://github.com/itchyny/gojq. I had read somewhere that it was faster than jq - no idea if that's still the case.
-
Library to analyze an arbitrary JSON string
JQ has a go implementation usable as a library I see. The project looks fairly active https://github.com/itchyny/gojq
-
Miller: Like Awk, sed, cut, join, and sort for CSV, TSV, and tabular JSON
I've been getting a lot of mileage out of https://github.com/itchyny/gojq#readme recently due to two things: its vastly superior error messages and the (regrettably verbose) `--yaml-input` option
I also have https://github.com/01mf02/jaq#readme installed but just haven't needed it
-
Yq is a portable yq: command-line YAML, JSON, XML, CSV and properties processor
I use gojq with --yaml-input or --yaml-output and flip back and forth between JSON and YAML promiscuously and have 100% jq UI compat, which helps because I use jq a lot. First thing I looked at on yq is '-s', which is 'slurp' for jq. Slightly altered semantics would just trip me up, and it seems like you can make a nearly straight bijection between YAML and jq so you can just do exactly the same things with either one (with some minor exceptions.)
https://github.com/itchyny/gojq
-
Looking for programming languages created with Go
jq https://github.com/itchyny/gojq
-
Oracle DB support in Benthos
github.com/itchyny/gojq -> similar to goawk, except JQ this time
What are some alternatives?
bytehound - A memory profiler for Linux.
jq - Command-line JSON processor [Moved to: https://github.com/jqlang/jq]
tsv-utils - eBay's TSV Utilities: Command line tools for large, tabular data files. Filtering, statistics, sampling, joins and more.
jq - Command-line JSON processor
awka - Revive awka - Awk to C Compiler
yq - yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor
intellij-awk - The missing IntelliJ IDEA language support plugin for AWK
counsel-jq - Traverse complex JSON and YAML structures with live feedback
tumblelog - A static tumblelog generator available as both a Perl and Python version
jfq - JSONata on the command line
awk - One true awk
zed - A novel data lake based on super-structured data