【发布时间】:2014-02-14 18:38:19
【问题描述】:
我正在处理大型变量,使用 while read line 在它们之间“循环”可能会非常慢,我发现变量越小运行速度越快。
如何将大变量拆分成较小的变量,然后一一读取?
例如, 我想达到的目标:
bigVar=$(echo "$bigVar" | split_var)
for var in "${bigVar[@]}"; do
while read line; do
...
done <<< "${var}"
done
或者可以拆分为 bigVar1、bigVar2、bigVar3 等,然后一一读取。
【问题讨论】:
-
$bigVar中有哪些数据?你能举个具体的例子吗?最好不要一开始就在变量中存储大量数据。 -
不要使用
split_var或echobigvar,只需将IFS设置为您要拆分的任何内容 -
子字符串扩展呢?
s="somebigvariable"; echo "${s:0:7} / ${s:7}".. 或者for ((i=0; i<${#s}; i+=3)) { echo "${s:i:3}"; }
标签: linux bash loops variables large-data