将文件中的行读取到Bash数组中

我正在尝试将包含行的文件读取到Bash数组中。


到目前为止,我已经尝试了以下方法:


尝试1

a=( $( cat /path/to/filename ) )

尝试2

index=0

while read line ; do

    MYARRAY[$index]="$line"

    index=$(($index+1))

done < /path/to/filename

两次尝试都只返回一个包含文件第一行的元素数组。我究竟做错了什么?


我正在运行bash 4.1.5


慕桂英4014372
浏览 417回答 3
3回答

慕雪6442864

该readarray命令(也拼写为mapfile)是在bash 4.0中引入的。readarray a < /path/to/filename

烙印99

将文件的每一行读入bash数组的最简单方法是:IFS=$'\n' read -d '' -r -a lines < /etc/passwd现在只需索引数组lines即可检索每一行,例如printf "line 1: %s\n" "${lines[0]}"printf "line 5: %s\n" "${lines[4]}"# all linesecho "${lines[@]}"
打开App,查看更多内容
随时随地看视频慕课网APP