en python:chaîne Split avec zsh comme en Python
s = '1::3'
a = s.split(':')
print a[0] # '1' good
print a[1] # '' good
print a[2] # '3' good
Comment puis-je obtenir le même effet avec zsh
?
La tentative suivante échoue:
string="1::3"
a=(${(s/:/)string})
echo $a[1] # 1
echo $a[2] # 3 ?? I want an empty string, as in Python
Merci. Êtes-vous capable d'expliquer comment cela fonctionne, tant de supports le rendent confus! – CMCDragonkai
Si vous essayez de scinder sur des barres obliques, les '/' s d'origine peuvent être remplacés par '|' s, il semble (par exemple 'a = ($ {(s |/|) chaîne}") '). ne peut pas trouver de documentation sur ceci, cependant, peut-être il y a un changement de comportement subtil –
@Harry, la documentation liée dit ceci: "N'importe quel caractère, ou les paires correspondantes" (...) ',' {. ..} ',' [...] 'ou' <...> ', peut être utilisé à la place d'un deux-points comme délimiteurs, ... "Dans le code d'Olivier, le caractère" utilisé à la place d'un deux-points "était slash; –