我有很多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
以真正重命名文件。您可以添加-n
以mv
避免意外覆盖现有文件。