加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

数组 – 从Bash中的文本文件创建数组

发布时间:2020-12-15 19:42:47 所属栏目:安全 来源:网络整理
导读:一个脚本需要一个URL,解析所需的字段,并将其输出重定向以保存在一个文件file.txt中。每次找到一个字段时,输出将保存在新行上。 file.txt A CatA DogA Mouse etc... 我想要使??用file.txt并在一个新的脚本中创建一个数组,其中每行都是数组中自己的字符串
一个脚本需要一个URL,解析所需的字段,并将其输出重定向以保存在一个文件file.txt中。每次找到一个字段时,输出将保存在新行上。

file.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

错误正在使用 – 用于循环文件行的惯用方式是:

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

详见Bash FAQ。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读