【发布时间】:2019-02-18 16:00:35
【问题描述】:
我有文本和每个换行符,我将它的值存储在数组中并显示它:
var=("AAA
aaa
BBB
bbb
CCC
ccc")
SAVEIFS=$IFS
IFS=$'\n'
var=($var)
IFS=$SAVEIFS
for (( i=0; i<${#var[@]}; i++ )) do
echo "${var[$i]}"
done
输出:
AAA
aaa
BBB
bbb
CCC
ccc
但我想要在同一个索引数组中的两个第一个元素,每个元素内部都有换行符,就像那样
var[0]=("AAA
aaa")
var[1]=("BBB
bbb")
var[2]=("CCC
ccc")
【问题讨论】:
-
当
var只有一个元素时,为什么它是一个数组?只需使用var=("AAA" "aaa" "BBB" "bbb" "CCC" "ccc")。如果该字符串来自外部源并且您必须逐行拆分,请使用readarray -t var <<< "$str"而不是var=("$str")。 -
那么这只是数组切片的问题。
var2+=("${var[*]:i:2}")for i=0,2,4,....