我正在创建一个bash数组:
for i in *.txt; do
arr2+=$(printf "%s\n" "${arr[@]: 0: 1} $arr[@]: 1: 1}")
done
echo "${arr2}"
输出结果都在同一行上(当我使用awk来获取第一列时,只返回第一个元素)。
我该如何使循环的每次迭代将每个新条目放入数组的新一行中?
如此所述:https://dev59.com/6nRB5IYBdhLWcg3weHHx#5322980
注意使用$()
会删除换行符!
保留换行的方法:使用""
。
因此,您的命令必须更新,例如像这样:
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'