Shell-Script
如何並行執行 PDF 到 TIFF 的轉換?
我在這裡有這個命令,用於將 PDF 文件(前 2 頁)批量轉換為使用
pdftoppm
.目標是將 TIFF 圖像放入其自己的文件夾中,文件夾名稱與原始 PDF 文件名匹配。
for file in *.pdf; do pdftoppm -tiff -f 1 -l 2 "$file" ~/tiff/directory/"$file"/"$file" done
如何同時執行 8 個
pdftoppm
命令實例?我正在執行 Debian。我有 10000 份要轉換為 TIFF 的 PDF。
一種方法是為所有作業創建 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
使用 GNU
parallel
:printf '%s\0' ./*.pdf | parallel --null --jobs 8 \ pdftoppm -tiff -f 1 -l 2 '{}' ~/tiff/directory/'{/.}'/'{/.}'.tiff
上面的命令管道將在目前目錄中
pdftoppm
匹配的所有文件名上執行您的命令。擴展為目前路徑名,同時擴展為目前路徑名'{}'``'{/.}'``./file-02.pdf``'{}'``'./file-02.pdf'``'{/.}'``file-02
我正在
parallel
使用以空分隔的路徑名 fromprintf
來處理任何可能的文件名。這些--null
由 by讀取parallel
。我對目標路徑名應該是什麼採取了一些自由。您應該將其調整為您實際想要使用的內容。