要求是对输入字符串,安装分隔符(分号:)分成两部分。
举例说明:
| 字符串 | 前部分 | 后部分 | 说明 |
|---|---|---|---|
| “aaa:bbb" | "aaa" | "bbb" | 无 |
| “aaa:" | "aaa" | "" | 后部分为空 |
| “:bbb" | "" | "bbb" | 前部分为空 |
| “:" | "" | "" | 前后部分均为空 |
| “aaa" | "aaa" | "" | 等同于"aaa:" |
| “aaa:bbb:ccc" | "aaa:bbb" | "ccc" | 按最后一个分号分割 |
bash代码如下:
function split() {
typeset s=${1%:*}
typeset e=${1#$s}
e=${e#:}
printf "v=[%-11s], s=[%-7s], e=[%-3s]\n" "$1" "$s" "$e"
}
如果字符串只有最多一个分隔符,则还有如下方法:
function split() {
IFS=: read s e <<EOF
${1}
EOF
或者
IFS=: read s e <<<${1}
或者
IFS=':' read -a f <<< "${1}"
printf "v=[%-11s], s=[%-7s], e=[%-3s]\n" "$1" "${f[0]}" "${f[1]}"












网友评论