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.
Bash can do discontinuous ranges
$ echo {{1..3},{7..8}} 1 2 3 7 8
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? like1:2:10
would be1,3,5,7,9
Yes, just give the step as the third number:
{1..10..2}
{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.
There’s also
seq
:$ seq 1 2 10
This will print the numbers starting from 1, incrementing by 2 until you get to 10.
Seq will only print one sequence, though. The program’s focus is discontinuous range. Something like:
1:2:10,20:2:30