Rename

img2pdf:讓頁面井井有條

  • August 24, 2021

img2pdf可以非常快速地處理數百張圖像,並使用類似的命令從中創建一個 pdf

img2pdf *.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%04ior%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選項是“版本”排序,這是自然排序的名稱。

引用自:https://unix.stackexchange.com/questions/666053