我有一堆带有图像的子文件夹。我试图使用目录名称作为pdf名称递归地将它们转换为pdf文件。在一些谷歌搜索的帮助下,我尝试使用这个脚本写道:
#!/bin/bash
for D in `find . -type d` do
convert *.jpg ${PWD##*/}.pdf
end
它不起作用。我怎样才能让它发挥作用?
每个文件夹中都有几个.JPG
,其中包含数字01-10等。使用convert *.jpg name.pdf
将所有图像转换为一个pdf文件。我想制作一个脚本来执行此操作,并使PDF文件具有目录名称。
我还希望脚本能够获取转换后的pdf并将其移动到父目录中。
答案 0 :(得分:4)
此处while
循环更合适。试试这个:
find . -type d | while read d; do convert "${d}"/*.jpg ./"${d##*/}.pdf"; done
find
将返回当前目录中的所有目录。while read d
会将每个目录路径读入变量$d
。convert ${d}/*.jpg
对目录$d
中的所有.jpg图片执行转换。./${d##*/}.pdf
仅使用目录名替换整个目录路径,附加.pdf
,并确保在父目录中创建PDF文件。答案 1 :(得分:1)
感谢@savanto的回答。我根据自己的需要修改了一下。
读取目录子目录中的文件。将一种文件类型转换为不同的文件类型。命名该文件并将其保存到目录中(使用OSX 10.10,终端bash-3.2)。
cd /parent_directory
find . -type d | while read d; do mogrify -format png *.eps; done
find . -name '*.eps' -execdir mogrify -format png {} \;
答案 2 :(得分:0)
易:
find path/to/images -iname "*.jpg" | xargs -I %this convert %this %this.pdf
非常简单干净!