这里有一个简单的测试脚本:
while read LINE; do
LINECOUNT=$(($LINECOUNT+1))
if [[ $(($LINECOUNT % 1000)) -eq 0 ]]; then echo $LINECOUNT; fi
done
当我这样做时cat my450klinefile.txt | myscript
,CPU 锁定在 100%,它每秒可以处理大约 1000 行。大约 5 分钟来处理cat my450klinefile.txt >/dev/null
半秒内的事情。
有没有更有效的方法来做到这一点。我只需要从标准输入读取一行,计算字节数,然后将其写入命名管道。但即使是这个例子的速度也慢得令人难以置信。
每 1Gb 的输入行我需要执行一些更复杂的脚本操作(关闭和打开一些数据正在馈送到的管道)。