• tal@lemmy.today
        link
        fedilink
        English
        arrow-up
        15
        ·
        edit-2
        1 day 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
        $
        
        • TechLich@lemmy.world
          link
          fedilink
          arrow-up
          9
          arrow-down
          1
          ·
          1 day 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
            10
            ·
            edit-2
            1 day ago

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

            Though I’d happily fix it if ShellCheck warned against this…

        • ThunderLegend@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 day 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.

    • Laurel Raven@lemmy.zip
      link
      fedilink
      English
      arrow-up
      6
      arrow-down
      2
      ·
      1 day 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
        3
        arrow-down
        2
        ·
        1 day 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
          2
          ·
          16 hours 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.