迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

使用 Bash 将文件读入数组

作者:迹忆客 最近更新:2023/05/30 浏览次数:

本篇文章介绍了一些使用 Bash 从文件中读取行并将其加载到数组中的方法。

首先,我们将看到 readarray 方法。 之后,我们将研究一种更通用的将文件读入 Bash 数组的方法。


使用 readarray 方法使用 Bash 将文件读入数组

readarray 是 Bash 4.0 附带的函数。 此方法适用于所有高于 4.0 的 Bash 版本。

如果您想查看当前运行的 Bash 版本,可以使用以下命令:

echo ${Bash_VERSION}

如果你的 Bash 版本低于 4.0,你可以跳到下一个方法,因为 readarray 对你不起作用。

我们将为所有示例使用一个名为 numbers.txt 的文件,其中包含以下内容。

numbers.txt 文件:

1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1

读取此文件并将其内容保存到数组中的语法如下:

readarray -t Arr < numbers.txt

分解语法,我们有 readarray 作为命令的名称,-t 将删除换行符,Arr 是写入文件内容的数组的名称。 numbers.txt 是我们要读取的文件的名称。

请注意 ,如果要读取的文件与您的脚本不在同一文件夹中,则应提供该文件的完整路径。

可以读取此数组的内容,如以下示例所示:

echo ${Arr[1]}

上面的代码将输出数组索引 1 中的行,这是文件的第二行。

输出是:

2 1

要打印出整个数组,请使用以下语法:

echo ${Arr[@]}

此输出将是:

1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1

使用 Bash 使用通用方法将文件读入数组

一般方法的语法如下:

IFS=$'\r\n' GLOBIGNORE='*' command eval  'ArrName=($(cat filename))'

读取此数组将具有与上一个示例中所示类似的语法:

echo ${ArrName[1]}

上面的 Bash 行将显示数组索引 1 中的内容。 但是,如果我们想显示整个数组的内容,我们可以使用:

echo ${ArrName[@]}

一般方法说明

一般语法中的 ArrName 是数组名,而 cat 后面的文件名是要读取的文件名。 我们将修改这两个变量以供我们自定义使用。

IFS 定义中断字符,在本例中为 \r\n\r 是回车符,\n 是换行符。

在大多数现代系统中,您会看到 \n 被用作换行符。

GLOBIGNORE='*' 被设置为安全以避免文件名出现奇怪的边缘情况。 应该注意的是,由于使用了 GLOBIGNORE,此命令需要 Bash(并且可能不一定适用于其他 shell,例如 zsh 或 fish)。

另一个需要注意的要点是这个解决方案比 readarray 慢得多。 使用它的唯一原因是你的 Bash 版本早于 4.0 版。

上一篇:在 Bash 中从文件中删除行

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Bash 中从文件中删除行

发布时间:2023/05/31 浏览次数:168 分类:操作系统

在 Bash 脚本中,有几种方法可以从文件中删除一行。 本文将讨论从文件中删除不必要行的不同方法。使用 tail 删除文本文件的一行

在 Bash 中查找文件大小

发布时间:2023/05/31 浏览次数:105 分类:操作系统

在 Bash 脚本中,有几种方法可以找到文件的大小。 本文将展示如何通过 Bash 查找文件的大小。我们将在这里讨论三种不同的方法,您可以根据自己的需要选择最合适的一种。

在 Bash 中删除空行

发布时间:2023/05/31 浏览次数:111 分类:操作系统

使用文件时,您可能需要在显示文件之前从文件中删除空行。 在 Bash Script 中,有几种方法可以从文件中删除空行。在 Bash 中删除空行的文件

在 Bash 中递归查找文件

发布时间:2023/05/31 浏览次数:195 分类:操作系统

这篇文章是关于 Bash 中的 find 命令的。 本文将讨论在 Bash 中使用 find 命令查找特定类型文件的方法。在 Bash 中使用 find 命令递归查找文件 用于导航文件层次结构的命令行工具是 Linux 中的 find

在 Bash 中将文件读入变量

发布时间:2023/05/31 浏览次数:165 分类:操作系统

本文将展示我们如何在变量中获取文件。 此外,我们将看到必要的示例和适当的解释,以使主题更容易理解。要保存到变量中的文本文件

在 Bash 中检查文件是否为空

发布时间:2023/05/31 浏览次数:74 分类:操作系统

通常需要检查文件是否为空,幸运的是,有一些简单的方法可以在终端上使用 Bash 或什至使用 Bash 脚本来检查。在 Bash 中使用带有 -s 选项标志的测试命令来检查文件是否为空

使用 Bash 打开 HTML 文件

发布时间:2023/05/31 浏览次数:192 分类:操作系统

在本文中,我们将了解如何在 Mac 上使用 Bash 使用默认浏览器打开 HTML 文件。使用 Bash 打开 HTML 文件 要打开 .html 文件,首先,我们需要创建一个扩展名为 .html 的文件名。

Bash 覆盖 File

发布时间:2023/05/31 浏览次数:102 分类:操作系统

在这篇 bash 文章中,我们将学习如何在 Linux 中覆盖文件。 为此,我们将学习使用 Linux 操作系统在 bash 中覆盖文件的不同方法和 Linux 命令。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便