You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将制表符分隔的字段读入数组并提取中间值赋值给变量

问题原因

mapfile是按行读取文件内容到数组,每一行对应数组的一个元素。你的HOMO.txt只有1行内容,因此数组myArray仅存在myArray[0]这一个有效元素,访问myArray[1]自然返回空值。

解决方法

方法1:拆分已有行元素取值

你可以直接拆分myArray[0]的内容,提取第二个字段赋值给变量:

# 提取中间数值赋值给变量homo_val
homo_val=$(echo ${myArray[0]} | awk '{print $2}')
# 验证结果
echo $homo_val

执行后输出为-4.6242。

方法2:读取文件时直接拆分字段

不需要用mapfile,直接读取文件时就把三个字段拆分到不同变量,更简便:

# 按空格拆分单行内容,分别赋值给三个变量
read col1 col2 col3 < HOMO.txt
# 中间数值即为变量col2的值
echo $col2

方法3:按字段读取到数组

如果你需要把每个字段都存为数组元素,可以用read -a直接按字段读入数组:

# 单行的每个字段依次对应数组fieldArr的一个元素
read -a fieldArr < HOMO.txt
# 中间数值为索引1的元素
echo ${fieldArr[1]}

内容的提问来源于stack exchange,提问作者Jatin Kashyap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 01:45:05