W python:Podział ciąg z zsh jak w Pythonie
s = '1::3'
a = s.split(':')
print a[0] # '1' good
print a[1] # '' good
print a[2] # '3' good
jaki sposób można osiągnąć ten sam efekt z zsh
?
Poniższa próba nie powiedzie:
string="1::3"
a=(${(s/:/)string})
echo $a[1] # 1
echo $a[2] # 3 ?? I want an empty string, as in Python
Dzięki. Czy jesteś w stanie wyjaśnić, jak to działa, tak wiele nawiasów sprawia, że jest mylące! – CMCDragonkai
Jeśli próbujesz podzielić na ukośniki, oryginalne '/' s można zastąpić '|' s, wydaje się (np. 'A = ($ {(s |/|) ciąg}") '). nie można znaleźć żadnej dokumentacji na ten temat, więc może nastąpiła subtelna zmiana zachowania –
@Harry, połączona dokumentacja mówi: "Każda postać lub pasujące pary" (...) "," {. ..} ',' [...] 'lub' <...> ', może być użyty w miejsce dwukropka jako ogranicznika, .... "W kodzie Oliviera, znak" używany zamiast dwukropka "był slash; twój, to jest pionowy pasek, więc nie ma zmiany zachowania –