This feels like it should already be a feature in a terminal. But I didn’t find anything that let me do this efficiently.

I had a rust library for converting list like 1-4,8-10 into vectors, but thought I’d expand it into a command line command as well, as it is really useful when I want to run batch commands in parallel using templates.

I wanted to share it since it might be a useful simple command for many people.

  • thevoidzero@lemmy.worldOP
    link
    fedilink
    arrow-up
    2
    ·
    4 months ago

    Thank you. I did think there might be a way.

    My program is basically doing printf "%d\n" {{1..3},{7..8}} in that case. Can bash do step? like 1:2:10 would be 1,3,5,7,9

    • rrconkle
      link
      fedilink
      English
      arrow-up
      4
      ·
      4 months ago

      Yes, just give the step as the third number: {1..10..2}

      • thevoidzero@lemmy.worldOP
        link
        fedilink
        arrow-up
        1
        ·
        4 months ago

        {1…10…2}

        Wow, that’s nice to know. I guess my program will at least make it easier since you can type it in a more humane way, but not essential.

        • 69420@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          4 months ago

          There’s also seq:

          $ seq 1 2 10
          

          This will print the numbers starting from 1, incrementing by 2 until you get to 10.

          • thevoidzero@lemmy.worldOP
            link
            fedilink
            arrow-up
            1
            ·
            4 months ago

            Seq will only print one sequence, though. The program’s focus is discontinuous range. Something like: 1:2:10,20:2:30