如何把字符串按分隔符分成两部分

2021-10-31  本文已影响0人  CodingCode

要求是对输入字符串,安装分隔符(分号:)分成两部分。
举例说明:

字符串 前部分 后部分 说明
“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]}"
上一篇 下一篇

猜你喜欢

热点阅读