Rename
img2pdf:讓頁面井井有條
img2pdf
可以非常快速地處理數百張圖像,並使用類似的命令從中創建一個 pdfimg2pdf *.tif -o out.pdf
但就我而言,頁面順序是錯誤的。
konsole
我在 Kubuntu 20.04 下執行命令。圖像文件以如下形式命名(在 Dolphin 文件管理器中重命名)
Vol_1.tif Vol_2.tif Vol_3.tif ... Vol_430.tif
生成的 pdf 以呼叫的文件/頁面開頭,
Vol_100.tif
這很有意義(在 1 或 11 之前看到 100)。然後,被呼叫Vol_119.tif
的後面是Vol_11.tif
,Vol_129.tif
後面是Vol_12.tif
… …Vol_189.tif
後面是Vol_18.tif
。如何進行?
您最好的選擇是使用 perl 實用程序重命名文件,使它們都具有相同數量的零填充數字
rename
(這在不同的發行版上具有不同的名稱,包括perl-rename
,prename
,file-rename
)。例如:rename -n 's/^(Vol_)(\d+)/sprintf "%s%03i", $1, $2/e' Vol_*.tif
更改
%03i
為%04i
or%05i
如果三位零填充是不夠的。這使用該
-n
選項,因此只會顯示要重命名的內容。如果/當您確定它執行您想要的操作時,請刪除-n
以靜默方式重命名文件(除錯誤外無輸出),或將其替換-v
為詳細操作。使用
-v
,您將看到如下輸出:$ rename -v 's/^(Vol_)(\d+)/sprintf "%s%03i", $1, $2/e' Vol_*.tif Vol_1.tif renamed as Vol_001.tif Vol_2.tif renamed as Vol_002.tif Vol_50.tif renamed as Vol_050.tif Vol_60.tif renamed as Vol_060.tif
另一種選擇是對文件名執行自然排序,因此您需要使用 GNU
find
,sort
, 和xargs
(或其他支持 NUL 分隔符的版本):例如
find . -name 'Vol_*.tif' -print0 | sort -z -V | xargs -0r img2pdf -o out.pdf
GNU 排序的
-V
選項是“版本”排序,這是自然排序的名稱。