Arrays 为每个bash数组项插入新行

Arrays 为每个bash数组项插入新行,arrays,bash,Arrays,Bash,我正在创建一个bash数组: for i in *.txt; do arr2+=$(printf "%s\n" "${arr[@]: 0: 1} $arr[@]: 1: 1}") done echo "${arr2}" 输出都在同一行上(当我使用awk获取第一列时,只返回第一个元素) 如何让for循环的每次迭代将每个新条目放入换行数组中?如下所述: 小心删除尾随新行的$()! 保留新行的方法:使用“” 因此,您的命令必须更新,例如: for i in *.txt; do

我正在创建一个bash数组:

    for i in *.txt; do
    arr2+=$(printf "%s\n" "${arr[@]: 0: 1}  $arr[@]: 1: 1}")
done

echo "${arr2}"
输出都在同一行上(当我使用awk获取第一列时,只返回第一个元素)

如何让for循环的每次迭代将每个新条目放入换行数组中?

如下所述: 小心删除尾随新行的
$()
! 保留新行的方法:使用

因此,您的命令必须更新,例如:

for i in *.txt; do
  tmp=$(printf "$i")
  arr2+="$tmp\n" # <--- here we preserve the new line!
done

echo -e "${arr2}" # option '-e' allow interpretation of the '\n'
用于*.txt中的i;做
tmp=$(printf“$i”)
arr2+=“$tmp\n”#