这里有一个命令,用于使用pdftoppm将PDF文档(前2页)批量转换为TIFF文件。
目标是将TIFF图像放入自己的文件夹中,文件夹名与原始PDF文件名相匹配。
for file in *.pdf; do
pdftoppm -tiff -f 1 -l 2 "$file" ~/tiff/directory/"$file"/"$file"
done如何同时运行8个pdftoppm命令实例?
我在管理Debian。我有1000个PDF转换到TIFF。
发布于 2021-11-05 01:51:46
一种方法是为所有作业创建shell输入:
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是希望同时运行的作业数:
for file in *.pdf
do
printf 'pdftoppm -tiff -f 1 -l 2 "%q" ~/tiff/directory/"%q"/"%q"' \
"$file" "$file" "$file"
done |
parallel -j 8发布于 2021-11-05 08:53:42
使用GNU parallel:
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读取的。
我对目的地的路径名应该是什么有一些轻率。你应该根据你真正想要使用的东西来调整它。
https://unix.stackexchange.com/questions/676182
复制相似问题