News for hackers. Stuff that matters.
Re:Frawk: An efficient Awk-like programming language. (2021) by michaelcampbell on Monday April 22, 2024 @11:26AM (#40115282)
The builtin CSV/TSV parsing seems the killer feature here, at least for me.

I've been using SQL on CSV and JSON lately as it's mostly easiest for me, but I can think back a few times where I've used an *awk for a specific need, AND had to deal with CSV parsing at the same time.

Re:Frawk: An efficient Awk-like programming language. (2021) by arp242 on Monday April 22, 2024 @11:36AM (#40115388)
Both GNU awk and "one true awk" added --csv last year, so as the README note mentions you probably don't need frawk for this (any more).
Re:Frawk: An efficient Awk-like programming language. (2021) by tastyminerals2 on Monday April 22, 2024 @12:25PM (#40115865)
If you need just csv/tsv parsing, you can also take a look at https://github.com/eBay/tsv-utils
Re:Frawk: An efficient Awk-like programming language. (2021) by fuzztester on Monday April 22, 2024 @03:07PM (#40117681)
interestingly, i had read somewhere earlier that those utilities were written in D.

confirmed it by looking at the site just now.

Re:Frawk: An efficient Awk-like programming language. (2021) by gpvos on Monday April 22, 2024 @03:17PM (#40117759)
I only found out recently that my favourite csv-munging tool, csvtool, is written in OCaml.
Re:Frawk: An efficient Awk-like programming language. (2021) by tastyminerals2 on Monday April 22, 2024 @05:16PM (#40120916)
Yes, and with heavy use of one of the biggest D strengths -- CTFE (compile time eval). Great lib!
Re:Frawk: An efficient Awk-like programming language. (2021) by tooltower on Monday April 22, 2024 @12:02PM (#40115632)
What's the common tool people use these days for manipulating json in an awk-like manner?
Re:Frawk: An efficient Awk-like programming language. (2021) by hermitcrab on Monday April 22, 2024 @01:00PM (#40116280)
Re:Frawk: An efficient Awk-like programming language. (2021) by rmetzler on Monday April 22, 2024 @02:08PM (#40117005)
I would say that lots of people use jq. But it’s not really awk-like.

You could probably use gron with awk pretty easily, since gron stands for “greppable json”.

But I also wonder how an awk with native json support would look like.

Re:Frawk: An efficient Awk-like programming language. (2021) by mbivert on Monday April 22, 2024 @04:32PM (#40119918)
Food for thought: have a look at this paper[0] about structural regular expressions. The author (Rob Pike) sketches in the last section an awk-support. I remember using such regexps a while ago to tweak indented JSON and JSON-like data (the indentation allowed to loop on hashes easily).

An awk with json support would for the most part need to be able to loop on hashes and arrays, and provide ways to travel in-depth. So far regular awk can travel through arrays (line-separator), and "in-depth" (e.g. nested "arrays") via regular loops & cie. Probably easier to think about it with a few concrete examples though.

[0]: http://doc.cat-v.org/bell_labs/structural_regexps/se.pdf

Re:Frawk: An efficient Awk-like programming language. (2021) by sceadu on Monday April 22, 2024 @01:35PM (#40116661)
gron (https://github.com/tomnomnom/gron) to transform it and query and then invert the transformation?
Re:Frawk: An efficient Awk-like programming language. (2021) by fuzztester on Monday April 22, 2024 @03:09PM (#40117695)
How do you use SQL on JSON?

You mean only for strictly tabular JSON, i.e. no nesting beyond rows and columns?

Re:Frawk: An efficient Awk-like programming language. (2021) by kermatt on Monday April 22, 2024 @08:53PM (#40127302)
Spark and Drill have options, but DuckDB makes it almost trivial: https://duckdb.org/docs/data/json/overview
Re:Frawk: An efficient Awk-like programming language. (2021) by fuzztester on Monday April 22, 2024 @11:40PM (#40128222)
Thanks, will check that out.
Re:Frawk: An efficient Awk-like programming language. (2021) by michaelcampbell on Friday April 26, 2024 @08:42AM (#40168722)
duckdb, as noted by someone else as well.
Re:Frawk: An efficient Awk-like programming language. (2021) by gpvos on Monday April 22, 2024 @12:02PM (#40115623)
frawk was the first awk to add proper CSV support, but the better-known awks have added it now as well, so its utility has become more limited.
Re:Frawk: An efficient Awk-like programming language. (2021) by gpvos on Saturday April 27, 2024 @07:50AM (#40179238)
I couldn't help the historian in me: looks like frawk gained CSV support in early 2020 with some bugfixes in July/August that year, while goawk gained it in May 2022, so my initial comment was correct.
Re:Frawk: An efficient Awk-like programming language. (2021) by anthk on Monday April 22, 2024 @07:51PM (#40126929)
>frawk is a small programming language for writing short programs processing textual data

AWK can do far more than that. With netcat you can write an IRC/Gopher client in days. There are solitaries written in awk, even tetris and maybe, sokobans.

Re:Frawk: An efficient Awk-like programming language. (2021) by dTal on Tuesday April 23, 2024 @04:06PM (#40136651)
Re:Frawk: An efficient Awk-like programming language. (2021) by anthk on Wednesday April 24, 2024 @04:40AM (#40142003)
A pity it's just for gawk; if it worked under POSIX awk you could use awka to give it a good boost.
Re:Frawk: An efficient Awk-like programming language. (2021) by gpvos on Saturday April 27, 2024 @07:58AM (#40179286)
Interesting, I'd never heard of awka. Note that frawk does some JITting using LLVM, so it can also be very fast; but it also doesn't support everything that gawk does.