首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何并行运行PDF到TIFF转换?

如何并行运行PDF到TIFF转换?
EN

Unix & Linux用户
提问于 2021-11-04 17:28:01
回答 2查看 396关注 0票数 1

这里有一个命令,用于使用pdftoppm将PDF文档(前2页)批量转换为TIFF文件。

目标是将TIFF图像放入自己的文件夹中,文件夹名与原始PDF文件名相匹配。

代码语言:javascript
复制
for file in *.pdf; do
    pdftoppm -tiff -f 1 -l 2 "$file" ~/tiff/directory/"$file"/"$file"
done

如何同时运行8个pdftoppm命令实例?

我在管理Debian。我有1000个PDF转换到TIFF。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2021-11-05 01:51:46

一种方法是为所有作业创建shell输入:

代码语言:javascript
复制
for file in *.pdf
do
    printf 'pdftoppm -tiff -f 1 -l 2 "%q" ~/tiff/directory/"%q"/"%q"' \
        "$file" "$file" "$file"
done

然后将其输送到parallel -j N,其中N是希望同时运行的作业数:

代码语言:javascript
复制
for file in *.pdf
do
    printf 'pdftoppm -tiff -f 1 -l 2 "%q" ~/tiff/directory/"%q"/"%q"' \
        "$file" "$file" "$file"
done |
parallel -j 8
票数 2
EN

Unix & Linux用户

发布于 2021-11-05 08:53:42

使用GNU parallel

代码语言:javascript
复制
printf '%s\0' ./*.pdf |
parallel --null --jobs 8 \
    pdftoppm -tiff -f 1 -l 2 '{}' ~/tiff/directory/'{/.}'/'{/.}'.tiff

上面的命令管道将在当前目录中与pdftoppm匹配的所有文件名上运行您的*.pdf命令。'{}'扩展到当前路径名,而'{/.}'扩展到当前路径名的基名,删除文件名后缀。因此,如果当前的文件名是./file-02.pdf,那么'{}'将是'./file-02.pdf',而'{/.}'将是file-02

我向parallel提供printf中以nul分隔的路径名,以便能够处理任何可能的文件名。这些都是用--null通过parallel读取的。

我对目的地的路径名应该是什么有一些轻率。你应该根据你真正想要使用的东西来调整它。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/676182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档