This post comes from my ever-growing file of ‘how the hell did I not know that’ issues.
On the cluster at work we have a bunch of machines with names like mysite12 or mysite237. So quite often I’m writing shell scripts to loop through all these boxes to get info. So I do something like this:
for number in `seq 12 256` do node=mysite$number echo $node done
It occurred to me today that this is such a staggeringly common thing to do that seq probably has a way of doing it already. Sure enough after reading the man page it turns out that you can hand seq a PRINTF style format command. So I can create my node names purely in seq
for node in `seq -f "mysite%g" 12 255" do echo $node done
How has it taken me ten years to work that out?