Notes † ZSH bible
Pad a number:
tracknumber=1
paddedTracknumber=$(print -f "%02d" $tracknumber)
echo $paddedTracknumber
Outputs:
01
Split string into array:
myvar="foo,bar,baz"
parts=(${(@s/,/myvar})
echo $parts[2]
Outputs:
bar
Join a array to string by comma:
tags=("one" "two" "three")
foo=${(j:,:)tags}
echo $foo
Outputs:
one,two,three
Collect lines into an array:
lines=("${(@f)$(cat stuff.txt)}")
echo $lines[1]
Glob files into an array:
files=($dir/**/*.flac)
Return everything after a certain character:
bla="foo=bar=baz"
echo ${bla#*=}
Outputs:
bar=baz
Loop array in reverse:
for id in "${(@aO)ids}"; do
echo $id
doneLinks
18:59 05.01.2026