我正在尝试将包含行的文件读取到Bash数组中。到目前为止,我已经尝试了以下方法:尝试1a=( $( cat /path/to/filename ) )尝试2index=0while read line ; do MYARRAY[$index]="$line" index=$(($index+1))done < /path/to/filename两次尝试都只返回一个包含文件第一行的元素数组。我究竟做错了什么?我正在运行bash 4.1.5
3 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
该readarray命令(也拼写为mapfile)是在bash 4.0中引入的。
readarray a < /path/to/filename
烙印99
TA贡献1829条经验 获得超13个赞
将文件的每一行读入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 lines
echo "${lines[@]}"
添加回答
举报
0/150
提交
取消