this post was submitted on 31 Jul 2024
10 points (85.7% liked)

Rust

6030 readers
1 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

[email protected]

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 8 points 3 months ago (1 children)

Bash can do discontinuous ranges

$ echo {{1..3},{7..8}}
1 2 3 7 8
[–] [email protected] 2 points 3 months ago (1 children)

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

[–] [email protected] 4 points 3 months ago (1 children)

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

[–] [email protected] 1 points 3 months ago (1 children)

{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.

[–] [email protected] 1 points 3 months ago (1 children)

There's also seq:

$ seq 1 2 10

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

[–] [email protected] 1 points 3 months ago

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