Skip to content

Instantly share code, notes, and snippets.

@mikalv
Forked from mattmc3/split.zsh.md
Created April 22, 2022 23:08
Show Gist options
  • Save mikalv/219ae4390d21ad154875a5ac7f568522 to your computer and use it in GitHub Desktop.
Save mikalv/219ae4390d21ad154875a5ac7f568522 to your computer and use it in GitHub Desktop.
ZSH - split string into array
str=part1/part2/part3
# part1
echo ${str%%/*}
# part1/part2
echo ${str%/*}
# part2
echo ${${str%/*}#*/}
# part2/part3
echo ${str#*/}
# part3
echo ${str##*/}

Example splitting string on slash character in ZSH

$ str=part1/part2/part3                                                                                                                             ~/.zsh antibody +
$ parts=(${(@s:/:)str})
$ echo $parts
part1 part2 part3
$ echo ${#parts[@]}
3

Parameter expansion: see docs

$ str=part1/part2/part3
$ echo ${str%%/*}
part1
$ echo ${str%/*}
part1/part2
$ echo ${${str%/*}#*/}
part2
$ echo ${str#*/}
part2/part3
$ echo ${str##*/}
part3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment