In python:
s = '1::3'
a = s.split(':')
print(a[0]) # '1' good
print(a[1]) # '' good
print(a[2]) # '3' good
How can I achieve the same effect with zsh?
The following attempt fails:
string="1::3"
a=(${(s/:/)string})
echo $a[1] # 1
echo $a[2] # 3 ?? I want an empty string, as in Python
The solution is to use the
@modifier, as indicated in the zsh docs:By the way, if one has the choice of the delimiter, it’s much easier and less error prone to use a newline as a delimiter. The right way to split the lines with zsh is then:
I don’t know whether or not the quotes are necessary here as well…