Bash

將pdf轉換為jpg保持相同的名稱;調整大小並創建拇指然後重命名?

  • October 7, 2011

我有很多pdf文件(3308),我必須應用四個步驟:

1)我必須全部轉換為jpg

我用 ImageMagick 在網上找到了這個小腳本:將 pdf 批量轉換為 jpg

我想這樣做,但我的文件名稱與以前相同:foo.pdf=>foo.jpg 另外我希望所有圖像都保存在“場景”中的文件夾中

2)然後我必須調整到 612x792

3)然後我必須創建 255x330 的縮略圖

4)最後我必須重命名它們。確實,我有一個csv文件,其中有他們的名字和新名字

這是一些行的範例。

每一行對應“實際名稱”文件“逗號”“新名稱”。共有 3308 行,每個文件一個

current_name,new_name
foo,bar
PS130_1060,55-large

如您所見,副檔名未顯示,因為這兩個文件已jpg格式化。

我完全迷失了,我不知道是否使用 4 個腳本或者是否可以在一個腳本中使用。我經常在 PHP 中工作,但我想做一些 bash 來改變,但這對我來說有點熱。

你能幫助我嗎?

你可以這樣開始:

for i in "$@"; do
 dst="${i%pdf}jpg"
 convert "$i" -resize 612x792 "$dst"
 convert "$i" -resize 255x330 "${i%.pdf}_thump.jpg"
done

並稱它為

$ bash my_script.sh *.pdf

對於重命名,您可以使用另一個腳本。我不明白您的範例 .csv 文件。是否包含 3 個文件的 3 行?好的,就是這樣。

您可以使用以下命令行重命名文件:

$ awk -F, '{ system("echo mv \"" $1 "\" \"" $2 "\"")  }' myrename.csv

awkecho ...對每一行執行命令,$1是一行的第一個欄位的$2值,是第二個欄位的值。\"如果文件名包含空格,則需要引用。-F,告訴awk使用逗號作為欄位分隔符。

如果你已經測試過這個命令,你可以刪除echo對文件進行真正的重命名。您可以添加-nmv避免意外覆蓋現有文件。

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