linux - 如何拆分一个大变量?

标签 linux bash loops variables large-data

我正在处理大变量,使用 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/

相关文章:

linux - 让用户在 linux 中创建具有 777 权限的文件

linux - Bash 重定向和标准输入

python - 加速循环以使用另一个数组中最接近的值填充数组

c - Arrays如何在 "for"循环中工作(C语言)

linux - 如何在iptables CentOS 6 中打开2195 端口激活APNS

linux - 如何在Linux上模拟和检测网卡环形缓冲区溢出

linux - mmap() 在可执行文件上使用时如何工作?

linux - bash:使用解压缩更改存档中的文件名

linux - 问题 "Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo"

c - 求时间复杂度 j+=sqrt(i))