我正在嘗試將包含行的文件讀取到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 回答

慕哥6287543
TA貢獻1831條經驗 獲得超10個贊
該readarray命令(也拼寫為mapfile)是在bash 4.0中引入的。
readarray a < /path/to/filename

子衿沉夜
TA貢獻1828條經驗 獲得超3個贊
將文件的每一行讀入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
提交
取消