参考 : 【shell】shell字符串分割|文件分割|剪切|截取_bandaoyu的博客-CSDN博客_shell 字符串分割
切割成数组(不能函数调用,因为不知道如何返回数组)
# 字符串
str="1_2_3_4_5"
# 切割符
splitChar="_"
# 切割后数组
array=
## 切割代码[开始]
OLD_IFS="$IFS"
IFS=$splitChar
array=($str)
IFS="$OLD_IFS"
## 切割代码[结束]
for item in ${array[@]}
do
echo $item
done
切割返回指定下标1(支持函数调用)
# 参数1: 要切割的字符串
# 参数2: 切割符
# 参数3: 切割后返回指定下标元素(从0开始)
function split(){
#保存当前shell默认的分割符,一会要恢复回去
OLD_IFS="$IFS"
#将shell的分割符号改为第二个参数
IFS=$2
#分割符是第二个参数,根据第二个参数切割第一个参数
array=($1)
#恢复shell默认分割符配置
IFS="$OLD_IFS"
echo ${array[$3]}
}
切割返回指定下标2(支持函数调用)
# 参数1: 要切割的字符串
# 参数2: 切割符
# 参数3: 切割后返回指定下标元素(从0开始)
function split(){
s=${1//$2/" "}
echo $s |awk '{print "'"$3"'"}'
}
切割成数组
a="1212|44545"
s=${a//"|"/" "}
echo ${s[*]}
for t in ${s[@]}
do
echo "[$t]"
done