将 pdf 转换为 jpg 并保持相同的名称;调整大小并创建拇指然后重命名?

将 pdf 转换为 jpg 并保持相同的名称;调整大小并创建拇指然后重命名?

我有很多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 来改变,但它对我来说有点热。

你能帮助我吗?

答案1

你可以这样开始:

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

echo ...awk对每一行执行命令,$1是该行第一个字段的值,$2是第二个字段的值。\"如果文件名包含空格,则需要引用。-F,告诉awk使用逗号作为字段分隔符。

如果您已经测试过此命令,则可以删除echo以真正重命名文件。您可以添加-nmv避免意外覆盖现有文件。

相关内容