【问题标题】:Read lines from text file and store it in array从文本文件中读取行并将其存储在数组中
【发布时间】:2020-02-09 15:05:15
【问题描述】:

所以我需要从包含这种形式的数字的文本文件(作为我调用脚本时的参数)中读取所有行(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)

有什么解决办法吗?

【问题讨论】:

  • 在您的代码array=()done 之前插入array+=( "${X[@]}" ) 以将数组X 附加到数组array

标签: arrays bash


【解决方案1】:

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

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

输出:

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

见:help mapfile

【讨论】:

  • 如果我想将第一个数字存储在一个数组中,将第二个数字存储在每行的不同数组 Y 中
  • 我建议您就此提出一个新问题(无评论)。
猜你喜欢
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2015-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多