从文本文件中读取行并将其存储在数组中

时间:2019-10-12 08:18:03

标签: arrays bash

因此,我需要从文本文件中读取所有行(作为调用脚本时的参数),该文本文件包含此格式的数字(1行不是2):
num1:num2

num3:num4等

我使用此命令块:

while IFS= read line 
do
    IFS=':' read -r -a X <<< "$line" 
done < "$1"

读取行和数字并将其存储到数组X中,但该数组仅到达位置0和1,并且当它更改行时,只需将旧数字所在的新数字(例如num3)写入(例如pos中的num1) 0)

有什么解决办法吗?

1 个答案:

答案 0 :(得分:1)

使用bash。用换行符替换所有:并使用mapfile填充数组x。

mapfile -t x < <(tr ':' '\n' < file)
declare -p x

输出:

declare -a x='([0]="num1" [1]="num2" [2]="num3" [3]="num4")'

请参阅:help mapfile