Orl*_*rlo 2 linux variables bash loops large-data
我正在使用大变量,它可以非常缓慢地"循环"通过它们while read line,我发现变量越小它工作得越快.
如何将大变量拆分为较小的变量然后逐个读取?
例如,我想要实现的目标:
bigVar=$(echo "$bigVar" | split_var)
for var in "${bigVar[@]}"; do
while read line; do
...
done <<< "${var}"
done
Run Code Online (Sandbox Code Playgroud)
或者可能会拆分为bigVar1,bigVar2,bigVar3等.而不是逐个读取它们.
而不是做
bigVar=$(someCommand)
while read line
do
...
done <<< "$bigVar"
Run Code Online (Sandbox Code Playgroud)
使用
while read line
do
...
done < <(someCommand)
Run Code Online (Sandbox Code Playgroud)
这样,你someCommand可以完全避免使用大变量的问题,并且可以在gigabyte之后输出千兆字节而没有任何问题.
如果将它放在变量中的原因是在其上执行多个步骤,请将其重写为管道.