参考 : 【shell】shell字符串分割|文件分割|剪切|截取_bandaoyu的博客-优快云博客_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
本文介绍在Shell脚本中如何对字符串进行分割,并将其转换为数组形式。提供了两种方法:一种是通过修改IFS变量来实现,另一种是使用函数配合awk命令完成特定下标的元素提取。
2671

被折叠的 条评论
为什么被折叠?



