arrays - 在 bash 中将一行(包含字符串和整数)转换为整数数组

标签 arrays string bash shell

我有一行包含空格分隔的字符串:

line="hello 3] 5c 100 memory"

我想把这个字符串拆分成一个整数数组,这样:

echo ${arr[0]}
echo ${arr[1]}
echo ${arr[2]}

Outputs 3 5 100

有人可以帮忙吗?

最佳答案

使用 Bash 的 Parameter expansion :

line="hello 3] 5c 100 memory"
arr=(${line//[^0-9 ]/})        # replace everything but 0-9 and space with nothing
declare -p arr

输出:

declare -a arr='([0]="3" [1]="5" [2]="100")'

关于arrays - 在 bash 中将一行(包含字符串和整数)转换为整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52625164/

相关文章:

c - 如何将文本从文件复制到字符串数组?

不允许使用 C++ 数据成员初始值设定项

c# - 在 C# 中将 Object[] 数组转换为 string[] 数组?

java - return (string expr) 和 return New String(string expr) 有什么区别?

c - 关于 strcmp() 的程序的 C 代码有什么问题?

bash - SED 转义特殊字符

c - C中的硬编码字节数组

c - 在 C 中将 strsep() 与动态字符串数组一起使用

bash - 自删除shell脚本

linux - 脚本bash更新网页并检查是否有其他差异