【发布时间】:2014-06-08 01:54:07
【问题描述】:
我有这个 python 代码,它将接受一个文件名和一组偏移量(逗号分隔),并将读取在偏移量中定义的相应行。
do
python fileOffset.py /mnt/media1/file $offsets >> tmpfile
done
$offsets 将提供以逗号分隔的字符串,其中包含文件指针 (12,123,121134)。这工作正常,直到我得到一个非常长的偏移字符串,这将引发 argument list too long 错误。作为一种解决方案,我编写了以下代码,它将拆分偏移量并一对一地调用 fileOffset.py。
IFS=', ' read -a array <<< $offsets
for element in "${array[@]}"
do
python fileOffset.py /mnt/media1/$file $element >> tmpfile
done
但这会使文件的处理速度非常慢。我怎样才能让它更快?
【问题讨论】:
-
在 python 中执行所有操作,因为您正在为
array中的每个元素生成一个新的 python 进程。如果帽子不喜欢你,看看xargs
标签: bash shell scripting arguments command-line-arguments