gpt4 book ai didi

bash - 在bash中将文件转换为二维数组

转载 作者:行者123 更新时间:2023-11-29 09:38:58 25 4
gpt4 key购买 nike

我正在做一个项目,我将一些数据保存到一个文件 (data.txt) 中。

10010101010;99;18767654536;252525
89878337326;44;18764329087;242424

下一步是将该数据读入二维数组,其中 row[0] 是第一行,row[1] 是第二行。我正在努力实现这个目标。此外,我也希望能够访问每一行的各个元素

我目前有这段代码,但它只打印第一行,我无法访问元素

read -a rows < data.txt                                          
for row in "${rows[@]}";do
row_array=(${row})
first=${row_array[0]}
sec=${row_array[1]}
echo ${first}
echo ${sec}
done

最佳答案

根据您的评论,它看起来像一个简单的 while read循环是你需要的:

while IFS=';' read -r id rest; do
if [[ "$id" == "10010101010" ]]; then
echo "Matching line : $id $rest"
fi
done < data.txt

在此代码中 IFS=';'指定使用 ;字符作为命令的内部字段分隔符 read ,这将使它把你的每一行解析为四个不同的词。

read -r 之后的名称对应于用于存储这些单词中的每一个的变量,如果单词多于变量,则最后一个包含该行的其余部分。
read -r id rest将第一列存储在 $id 中变量和剩下的词变成$rest , 而 read -r first second third fourth会将每个单词存储在它自己的变量中。

read 的输入命令在 while 的末尾指定循环附加 < data.txtdone之后关闭循环。

关于bash - 在bash中将文件转换为二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55144651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com