我基于模板生成~2万个文件。这些文件包含2个对象:
hanzi
); pinyin
)。这部分工作得很好,然后我来:
hanzi
左对齐; pinyin
对齐hanzi
和pinyin
<svg:text>
转换为<svg:path>
使用以下选项:
inkscape -f file.svg \
--select=hanzi --verb=AlignHorizontalLeft --verb=EditDeselect \
--select=pinyin --verb=AlignHorizontalRight --verb=EditDeselect \
--select=hanzi --select=pinyin \
--verb=AlignVerticalCenter --verb=SelectionUnion \
--verb=FileSave --verb=FileQuit
节流是我打开/关闭Inkscape
每个文件。
N.B。:我正在使用Inkscape
0.48.4 r9939
(2014年1月22日)
Inkscape
实例中处理多个文件?Align*
动词的替代方法是什么,因为它们在inkscape --verbs-list
中不可用?答案 0 :(得分:1)
我根本不知道Inkscape,但我认为你的问题是它太慢了 - 尽管你没有明确说明。无论如何,您可以尝试这样GNU Parallel
:
parallel -j 8 ./process {} ::: *.svg
这将保持8个作业并行运行,直到处理完所有20,000个文件。 {}
是文件名的简写,文件名列表是在:::
之后给出的。如果您的命令行中也有文件,则可以在stdin
:
find . -name "*.svg" | parallel -j 8 ./process {}
然后,您将Inkscape命令包装在名为process
的脚本中并使其可执行(使用chmod +x process
)并使其采用单个参数 - 即文件名。
我想无论如何都值得一试 - 使用一个小的COPIED样本文件夹,直到你对GNU Parallel
有信心。