繁体   English   中英

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

[英]Read lines from text file and store it in array

所以我需要从包含这种形式的数字的文本文件中读取所有行(作为我调用脚本时的参数)(1个新行而不是2个):
数字1:数字2

num3:num4 等

我使用这个命令块:

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

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

有什么解决办法吗?

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

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

Output:

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

请参阅: help mapfile

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM