程序员的知识教程库

网站首页 > 教程分享 正文

如何在 Bash 中将字符串拆分为数组?

henian88 2024-10-25 11:53:42 教程分享 2 ℃ 0 评论

更多互联网精彩资讯、工作效率提升关注【飞鱼在浪屿】(日更新)

IFS=', ' read -r -a array <<< "$string"

注意,在字符$IFS被视为分离器,字段可以由被分离 。使用逗号或空格。

要访问单个元素:

echo "${array[0]}"

迭代元素:

for element in "${array[@]}"
do
    echo "$element"
done

获取索引和值:

for index in "${!array[@]}"
do
    echo "$index ${array[index]}"
done

最后一个例子很有用,因为 Bash 数组可以是稀疏的。换句话说,您可以删除一个元素或添加一个元素,然后索引不连续。

unset "array[1]"
array[42]=Earth

要获取数组中的元素数:

echo "${#array[@]}"

如上所述,数组可以是稀疏的,因此不使用长度来获取最后一个元素。在 Bash 4.2 及更高版本中,您可以这样做:

echo "${array[-1]}"

在任何版本的 Bash 中(来自 2.05b 之后的某个地方):

echo "${array[@]: -1:1}"

请注意减号前的空格。它是必需的。

如果使用fish shell,会更简单些。

> set array (string split ", " $string)

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表