将数组存储到文件并从 BASH 中的文件加载数组

将数组存储到文件并从 BASH 中的文件加载数组

我希望在完成更新后能够将多个整数数组存储到 txt 文件中,然后能够将这些数组从 txt 文件加载到我正在使用的脚本中。

这些数组基本上将包含某些统计信息,我希望能够加载和保存它们,以便它们在每次执行脚本后更新统计信息。

有没有办法在 bash 中做到这一点?

编辑:对于下面的答案,您将如何将数组写入文件?

答案1

假设我们有一个包含两个整数数组的文件,每行一个:

$ cat file
1 20 300
1 2 3 5

我们可以按如下方式读取这些数组:

{ read -a a1; read -a a2; } <file

我们可以使用以下方法验证它们是否被正确读取declare -p

$ declare -p a1
declare -a a1='([0]="1" [1]="20" [2]="300")'
$ declare -p a2
declare -a a2='([0]="1" [1]="2" [2]="3" [3]="5")'

将数组保存到文件

将它们保存到文件的一种方法是:

$ { echo "${a1[*]}"; echo "${a2[*]}"; } >newfile

生成的文件如下所示:

$ cat newfile
1 20 300
1 2 3 5

答案2

您可以使用以下命令将数组写入文件

printf "%s\n" "${a1[*]}" "${a2[*]}" > file

这与 John1024 的答案兼容;它每行放置一个数组。

相关内容