• bugsmith@programming.dev
    link
    fedilink
    arrow-up
    9
    ·
    8 months ago

    Love this. Always interesting to see novel ways of querying data in the terminal, and I agree that jq’s syntax is difficult to remember.

    I actually prefer nu(shell) for this though. On the lobste.rs thread for this blog, a user shared this:

    | get license.key -i
    | uniq --count
    | rename license
    
    This outputs the following:
    
    ╭───┬──────────────┬───────╮
    │ # │    license   │ count │
    ├───┼──────────────┼───────┤
    │ 0 │ bsd-3-clause │    23 │
    │ 1 │ apache-2.0   │     5 │
    │ 2 │              │     2 │
    ╰───┴──────────────┴───────╯
    
    
    • Kissaki@programming.dev
      link
      fedilink
      English
      arrow-up
      0
      ·
      8 months ago

      Haha, I tried querying in Nushell before reading this and I was sure there was a better way. And indeed there is (especially since I was missing uniq). I’m still learning the available operators, but I enjoy the shell a lot, as well as its promised capabilities.

      • bugsmith@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        8 months ago

        I really like Nushell. I would not run it as a daily driver currently, as it mostly doesn’t win me over from Fish, feature-wise, but I love having it available for anything CLI date pipeline work I need to do.

  • bobburger@fedia.io
    link
    fedilink
    arrow-up
    3
    ·
    8 months ago

    I love DuckDB. It’s really nice to be able to put a bunch of parquet files in a directory and then do operations on them as if they were a sql database. You can even put an index on the files if you’re feeling froggy.

  • Kissaki@programming.dev
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    8 months ago

    While it doesn’t provide an SQL interface, I’ve been using Nushell as my shell, which has native data operations.

    I tried querying the same, and I’m still not fluent (this was my third or fourth bigger/practical data querying), but it works well and fast too when you know the syntax:

    http get https://api.github.com/orgs/golang/repos | each {|x| get license} | get key | group-by --to-table | update items {|x| $x.items | length }
    

    I’ve used Nushell for reading en-mass json files, generating command json files for stuff saved in excel files (you can natively open those too), and most recently to query log files for specific information and usage analysis.

    /edit: This comment has the better nu solution.