我有这个数组:
info=('John;10;03-03-2019;john@123' 'Mike;20;20;03-03-2019;mike@123')
我需要按如下所述将其分开:
[0]约翰10年,日期03-03-2019
[1]迈克20年,于03-03-2019
我只有这个:
IFS=';' read -r -a ADDR <<< "$info"
for i in "${ADDR[@]};
do
echo -n "Name:$i"
done
答案 0 :(得分:0)
您可以使用以下读取语句将特定的数组条目信息[ix]拆分为字段
IFS=';' read name years date email <<< "${info[$ix]}"
echo "Name=$name, email=$email, ..."
答案 1 :(得分:0)
newinfo=()
for item in "${info[@]}"; do
IFS=";" read -ra fields <<<"$item"
newinfo+=("${fields[0]} ${fields[1]} years at ${fields[2]}")
done
declare -p newinfo
declare -a newinfo=([0]="John 10 years at 03-03-2019" [1]="Mike 20 years at 20")
或者:
newinfo=()
for item in "${info[@]}"; do
IFS=";" read -ra fields <<<"$item"
printf -v newinfo[i++] "%s %s years at %s" "${fields[@]:0:3}"
done
i
变量在首次使用时将被视为零。