繁体   English   中英

将每行的一部分保存到bash中的数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM