gpt4 book ai didi

linux - 虽然读取行非常慢

转载 作者:太空宇宙 更新时间:2023-11-04 04:11:13 24 4
gpt4 key购买 nike

我想为大量图像创建拇指。问题是,对于大型列表,读取行似乎非常慢。我能想到的一种解决方案是创建最多包含 500 行的文件,然后一一读取它们。但有什么聪明的解决方案可以解决这个问题吗?

while read line; do
if [ -e "$line" ] && [ ! -z "$line" ]; then
...
fi
}
done <<< "$imagesList"

最佳答案

您的问题是您正在使用 HERE 字符串通过 <<< 读取这些行。如果 HERE 字符串非常大,这会很慢。

如果$imgageList是一个文件,您可以进行文件重定向,这会快得多:

while read line
do
if [ -e "$line" -a ! -z "$line" ]
then
...
fi
done < "$imagesList_file" # Redirect from a file.

您也许可以这样做:

echo "$imagesList" | while read line
do
if [ -e "$line" -a ! -z "$line" ]
then
...
fi
done

但是,我会担心命令行重载。在 Linux/Unix 系统中,这在 /usr/include/sys/syslimits.h 中定义。或/usr/include/syslimits.h 。在我的系统上它是 1024 * 256 或 262,144 字节。这听起来很多,但可能具有欺骗性。文件名可能会很长——尤其是当您在其中包含目录路径时。当您测试时,这通常足够长,可以通过,但当您确实非常依赖它工作时,就会失败。和。它默默地失败了。你永远不知道最后几个文件名被删除了。

最好的办法是创建一个包含图像名称列表的文件,而不是将它们加载到环境变量中。

关于linux - 虽然读取行非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18993737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com