bash读取包含数组的文件,并将其保存为新的文件列表



我有一个包含数组file.txt=["0", "1", "2", "3"]的文件,我想创建一个bash来读取该文件并创建一个新的列表file2.txt =

0
1
2
3
#!/bin/bash
value=$(<file.txt)
echo "$value"
echo ${#value[@]}
for key in ${value[@]}; do echo ${key}; done >> file2.txt

它给我的结果是:

["0",
"1",
"2",
"3"],

您可以使用json_pp来打印数组,然后使用grep只打印数字。

cat file.txt | json_pp | grep -Po "d+" > file2.txt

如果您的系统中没有安装json_pp,您可以通过Perl安装它。

编辑:

如果你file.txt数组存储在你提到的同样的格式,那么这一行程序也将工作:

sed -E 's/^["|"]$//g; s/", ?"/n/g' file.txt > file2.txt

说明:删除第一个["和最后一个"]部分,然后将每个", "替换为新行