gpt4 book ai didi

arrays - 在 Bash 中从文本文件创建数组

转载 作者:行者123 更新时间:2023-11-29 08:39:47 25 4
gpt4 key购买 nike

脚本获取一个 URL,解析它以获得所需的字段,并将其输出重定向以保存在一个文件 file.txt 中。每次找到一个字段时,输出都会保存在一个新行中。

文件.txt

A Cat
A Dog
A Mouse
etc...

我想获取 file.txt 并在新脚本中从中创建一个数组,其中每一行都成为数组中它自己的字符串变量。到目前为止我已经尝试过:

#!/bin/bash

filename=file.txt
declare -a myArray
myArray=(`cat "$filename"`)

for (( i = 0 ; i < 9 ; i++))
do
echo "Element [$i]: ${myArray[$i]}"
done

当我运行这个脚本时,空格导致单词被拆分而不是被拆分

期望的输出

Element [0]: A Cat 
Element [1]: A Dog
etc...

我最终得到这个:

实际输出

Element [0]: A 
Element [1]: Cat
Element [2]: A
Element [3]: Dog
etc...

如何调整下面的循环,使每一行的整个字符串与数组中的每个变量一一对应?

最佳答案

使用 mapfile命令:

mapfile -t myArray < file.txt

错误是使用 for -- 遍历文件的 的惯用方法是:

while IFS= read -r line; do echo ">>$line<<"; done < file.txt

参见 BashFAQ/005了解更多详情。

关于arrays - 在 Bash 中从文本文件创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30988586/

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