我正在处理大变量,使用 while read line
可以非常缓慢地“循环”它们,我发现变量越小,它工作得越快。
如何将大变量拆分成较小的变量,然后一个一个地读取它们?
例如, 我想要实现的目标:
bigVar=$(echo "$bigVar" | split_var)
for var in "${bigVar[@]}"; do
while read line; do
...
done <<< "${var}"
done
或者可以拆分为 bigVar1、bigVar2、bigVar3 等。然后一个一个地阅读它们。
最佳答案
而不是做
bigVar=$(someCommand)
while read line
do
...
done <<< "$bigVar"
使用
while read line
do
...
done < <(someCommand)
这样,您就可以完全避免大变量的问题,someCommand
可以毫无问题地输出千兆字节。
如果将其放入变量的原因是要分多个步骤对其进行处理,请将其重写为管道。
关于linux - 如何拆分一个大变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21321312/