Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何将文件的每一行放入数组中_Bash_Shell - Fatal编程技术网

Bash 如何将文件的每一行放入数组中

Bash 如何将文件的每一行放入数组中,bash,shell,Bash,Shell,我的一个bash脚本有问题 我有一个文件,其中逐行存储电子邮件地址列表,如下所示: mail@adress1 mail@adress2 我想做的是实际地将文件的每一行放入一个数组中,其中每个索引都以正确的顺序对应于一行。对于我来说,mapfile不可用,您也可以使用可能较旧的Bash版本执行此操作: set -f IFS=$'\n'

我的一个bash脚本有问题

我有一个文件,其中逐行存储电子邮件地址列表,如下所示:

mail@adress1
mail@adress2


我想做的是实际地将文件的每一行放入一个数组中,其中每个索引都以正确的顺序对应于一行。

对于我来说,mapfile不可用,您也可以使用可能较旧的Bash版本执行此操作:

 set -f
 IFS=$'\n'                                                                                                                                             
 arr=($(<foo.txt))
set-f
IFS=$'\n'

arr=($(For me mapfile不可用,您也可以使用可能较旧的Bash版本执行此操作:

 set -f
 IFS=$'\n'                                                                                                                                             
 arr=($(<foo.txt))
set-f
IFS=$'\n'

arr=($(要将文件的行读取到数组中,请执行以下操作:

mapfile-t myArray

myArray=()
当IFS=read-r行| |[“$line”]];do
myArray+=(“$line”)
完成


要将行的字段读入数组:使用
read
-a
以及“herestring”
将文件的行读入数组:

mapfile-t myArray

myArray=()
当IFS=read-r行| |[“$line”]];do
myArray+=(“$line”)
完成



要将行中的字段读入数组:使用
read
-a
和“herestring”
你试过
readarray
/
mapfile
?mapfile是GNU扩展名吗?嗯,mapfile是一个bash内置命令,bash是GNU外壳,所以…kinda.Mh。看起来我的bash太旧了。如果你在Mac上,你试过
readarray
/
mapfile
?mapfile是GNU扩展名吗?嗯,mapfile是bash内置名吗命令,bash是GNU shell,所以…kinda.Mh.看起来我的bash太旧了。如果你在Mac上,请检查一下你想在那里添加
set-f
,这样你就不会因为没有引号的内容而得到任何不需要的文件扩展。@Glenjackman:哦,是的,很抱歉这个错误。你想在那里添加
set-f
,所以你不会得到一个“由于未加引号的内容,出现了不必要的文件扩展。@glennjackman:哦,是的,很抱歉这个错误。谢谢,第一个解决方案对我有效,我不知道有这样的工具存在,我被循环卡住了……我想知道这次是否可以使用mapfile用列中的单词列表填充数组。”(我不是问你解决方案,那是不公平的,只要你能不能再次使用mapfile)。再次感谢您可以使用
read-a
将一行拆分为单词,我只是在回答中补充了一句谢谢,第一个解决方案对我有效,我不知道有这样的工具,我被循环卡住了……我想这次是否可以使用mapfile用列中的单词列表填充数组(我不是问你这个解决方案,这是不公平的,只要你有可能或没有再次使用mapfile)。再次感谢你可以使用
read-a
将一行拆分为多个单词,我只是在答案中添加了这个