开发者社区> 问答> 正文

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

脚本采用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... 如何调整下面的循环,使每一行的整个字符串与数组中的每个变量一一对应? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 20:19:57 555 0
1 条回答
写回答
取消 提交回答
  • 使用mapfile命令:

    mapfile -t myArray < file.txt 错误正在使用for-循环遍历文件行的惯用方式是:

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

    2020-02-08 20:20:09
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载