[英]Saving part of each line to an array in bash
我正在尝试从一个在每一行上以name:address格式存储用户名和地址的文件中读取数据,我希望仅将地址存储到一个数组中。 有什么办法吗? 我的代码当前如下所示:
while IFS=: read -r username address; do
array=${address}
done <userfile.txt
它仅存储文件第一行中的地址并停止。
你说得对! 您只需要使用bash
数组提供的+=
运算符(追加)将其追加到数组即可。
declare -a myArray=()
while IFS=: read -r username address; do
myArray+=("$address")
done < userfile.txt
进行上述操作将为您解决问题。 请注意,括号在这里也很重要。 array+=(something)
将新元素添加到数组,而array+=something
仅将文本添加到数组的第一个元素。 (可选)稍后在单独的行中打印数组内容,请使用printf
作为
printf "%s\n" "${myArray[@]}"
您可以使用array+=($address)
形式添加数组元素。
array=()
while IFS=: read -r username address; do
array+=("$address")
done < userfile.txt
echo ${array[@]}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.