• tal@lemmy.today
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        2 months ago

        To be fair, a lot of the programs don’t use a single character, have multiple spaces between fields, and cut doesn’t collapse whitespace characters, so you probably want something more like tr -s " "|cut -d" " -f3 if you want behavior like awk’s field-splitting.

        $ iostat |grep ^nvme0n1
        nvme0n1          29.03       131.52       535.59       730.72    2760247   11240665   15336056
        $ iostat |grep nvme0n1|awk '{print $3}'
        131.38
        $ iostat |grep nvme0n1|tr -s " "|cut -d" " -f3
        131.14
        $
        
        • ThunderLegend@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          0
          ·
          2 months ago

          This is awesome! Looks like an LPI1 textbook. Never got the certification but I’ve seen a couple books about it and remember seeing examples like this one.

        • TechLich@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          2 months ago

          I never understood why so many bash scripts pipe grep to awk when regex is one of its main strengths.

          Like… Why

          grep ^nvme0n1 | awk '{print $3}'

          over just

          awk '/^nvme0n1/ {print $3}'

          • FooBarrington@lemmy.world
            link
            fedilink
            arrow-up
            0
            ·
            2 months ago

            Because by the time I use awk again, I’ve completely forgotten that it supports this stuff, and the discoverability is horrendous.

    • Laurel Raven@lemmy.zip
      link
      fedilink
      English
      arrow-up
      0
      ·
      2 months ago

      This is definitely somewhere that PowerShell shines, all of that is built in and really easy to use

      • Laser@feddit.org
        link
        fedilink
        arrow-up
        0
        ·
        2 months ago

        People are hating on Powershell way too much. I don’t like its syntax really but it has a messy better approach to handling data in the terminal. We have nu and elvish nowadays but MS was really early with the concept and I think they learned from the shortcomings of POSIX compatible shells.

        • Laurel Raven@lemmy.zip
          link
          fedilink
          English
          arrow-up
          0
          ·
          2 months ago

          I really can’t stress enough how much power and flexibility comes with an object oriented shell, especially with the dotnet type system behind it.

          I think most people who hate it just do so either because it came from Microsoft (which… Yeah, that’s understandable), or because it’s a different way of thinking about it (and/or they spent a lot of effort learning how to parse data from strings effectively and hate that it’s made easier?). But love or hate it, it is effective and powerful, and I find myself missing that when working with bash.

  • Ŝan@piefed.zip
    link
    fedilink
    English
    arrow-up
    0
    ·
    2 months ago

    Ok, þe quote misplacement of really confusing. It’s

    awk '{print $1}'
    

    How can you be so close to right about þis and still be wrong?

    • hddsx@lemmy.ca
      link
      fedilink
      arrow-up
      0
      ·
      2 months ago

      Who downvoted this? If you use awk, you know Sxan is using the correct syntax.

      • teft@piefed.social
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        2 months ago

        People have been downvoting him because he uses the letter thorn in his comments.

        Some people will hate on anyone different.

        • mexicancartel@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          0
          ·
          2 months ago

          I recently noticed many people on lemmy have that thing rn. Why are they using it/is that autocorrecty thibgy or something? I didn’t downvote them but i hate seeing this. And it’s not just this letter

          • Badabinski@kbin.earth
            link
            fedilink
            arrow-up
            0
            ·
            2 months ago

            I’m not using it because it would be extremely inconvenient for me, but I think that the English language deserves to have the thorn returned to it.

            • scathliath@lemmy.dbzer0.com
              link
              fedilink
              arrow-up
              0
              ·
              2 months ago

              I used to use it for math notation, so I’d welcome it’s use again if I can keep using it as a placeholder for “then this happens” in between steps of functions.

            • teft@piefed.social
              link
              fedilink
              English
              arrow-up
              0
              ·
              2 months ago

              The english alphabet needs to be completely redone. We should bring back thorn, eth, and wynn. We should also increase the vowels to actually represent the crazy amount of vowel sounds we have, dipthongs are dumb. 5 vowels is not sufficient for 15+ phonemes.

  • DreamButt@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    2 months ago

    In all my years I’ve only used more than that a handful of times. Just don’t need it really

    Now jq on the other hand…

  • KSP Atlas@sopuli.xyz
    link
    fedilink
    arrow-up
    0
    ·
    2 months ago

    I think the most I’ve done with awk is write a battery monitor applet with it, it involved parsing data from /sys and making choices based on it so I decided it was a decent choice

  • Doomsider@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    2 months ago

    My five thousand line bash script can do things that one hundred thousand lines of code could not do.

    On the brightside, at least script monkeys can now look down on vibe coders.

    • bulwark@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      2 months ago

      I remember when I first stumbled across this manual I was trying to look up a quick awk command and wound up reading the whole thing. It’s really one of the better GNU manuals.

  • Lauchmelder@feddit.org
    link
    fedilink
    arrow-up
    0
    ·
    2 months ago

    Why spend 30 seconds manually editing some text when you can spend 30 minutes clobbering together a pipeline involving awk, sed and jq

    • freijon@lemmings.world
      link
      fedilink
      arrow-up
      0
      ·
      2 months ago

      Or 3 minutes clobbering a pipeline in nushell. Yes, I’m a nushell fanboy. I still over-automate everything, but with nushell it’s actually fun.

      • Tangent5280@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        2 months ago

        The important part is to learn the limits of any tool. Nowadays I no longer use jq for any long or complicated tasking. Filter and view data? jq is fine. Anything more and I just cook up a python script.

          • Tangent5280@lemmy.world
            link
            fedilink
            arrow-up
            0
            ·
            2 months ago

            How do you get complex data structures to work? I was alienated from scripting on zsh because I wanted something like a dict and realised I would have to write my own implementation. Is there a work around for that?

            • tal@lemmy.today
              link
              fedilink
              English
              arrow-up
              0
              ·
              edit-2
              2 months ago

              I mean, there’s a point in data structure complexity where it’s useful to use Python.

              But as to dicts, sure. You’re looking for zsh’s “associative array”. Bash has it too.

              zsh

              $ typeset -A mydict
              $ mydict[foo]=bar 
              $ echo $mydict[foo]
              bar
              $
              

              bash

              $ typeset -A mydict
              $ mydict[foo]=bar
              $ echo ${mydict[foo]}
              bar
              $
              
              • Tangent5280@lemmy.world
                link
                fedilink
                arrow-up
                0
                ·
                2 months ago

                This will do nicely - I had several workflows where I’d hit an API and get a massive super nested JSON as output; I’d use jq to get the specific data from the whole thing and do a bunch of stuff on this filtered data. I pretty much resigned to using python because I’d have successively complicated requirements and looking up how to do each new thing was slowing me down massively.