en Python:Separar una cadena con zsh como en Pitón
s = '1::3'
a = s.split(':')
print a[0] # '1' good
print a[1] # '' good
print a[2] # '3' good
¿Cómo puedo conseguir el mismo efecto con zsh
?
El siguiente intento falla:
string="1::3"
a=(${(s/:/)string})
echo $a[1] # 1
echo $a[2] # 3 ?? I want an empty string, as in Python
Thanks. Sin embargo, puedes explicar cómo funciona, ¡tantos brackets lo hacen confuso! – CMCDragonkai
Si está intentando dividir en barras, el '/' s original puede reemplazarse con '|' s, parece (por ejemplo 'a = ($ {(s |/|) string}") '). I Parece que no puede encontrar ninguna documentación sobre esto, así que tal vez haya algún cambio de comportamiento sutil. –
@Harry, la documentación vinculada dice esto: "Cualquier carácter, o los pares coincidentes" (...) ',' {. ..} ',' [...] ', o' <...> ', pueden usarse en lugar de dos puntos como delimitadores, .... "En el código de Olivier, el carácter" usado en lugar de dos puntos "era una barra; el suyo, es barra vertical. Entonces, no hay cambio de comportamiento. –