Shell脚本将PDF转换为图像并保存在子文件夹中

乔恩·H

我正在尝试编写一个bash脚本,该脚本使用Imagemagick将PDF转换为给定目录(作为参数传递)中的图像,然后将该转换保存到该目录的子文件夹中。我有一个脚本,可以很好地将其转换并保存到同一目录中,但是当我尝试添加路径时,我想将转换后的文件保存在脚本中断处。

到目前为止,这是我能工作的:

DIR="$@"
EXT="*.pdf"

mkdir -p "${DIR}images"
shopt -s nullglob
for pdffile in "$DIR"*.pdf; do
    convert -density 300 -depth 8 -quality 90 -trim "${pdffile}" "${pdffile%.*}".jpeg
done

这是我尝试保存到子文件夹中的内容。如果我将“ images / ...”添加到转换后的最后一个参数中,如下所示:

DIR="$@"
EXT="*.pdf"

mkdir -p "${DIR}images"
shopt -s nullglob
for pdffile in "$DIR"*.pdf; do
    convert -density 300 -depth 8 -quality 90 -trim "${pdffile}" "images/${pdffile%.*}".jpeg
done

这是我执行脚本时发生的情况:

$ ls foo
bar.pdf  baz.pdf  biz.pdf
$ ./pdf-to-img.sh foo/
convert-im6.q16: unable to open image `images/foo/bar.jpeg': No such file or directory @ error/blob.c/OpenBlob/2701.
convert-im6.q16: unable to open image `images/foo/baz.jpeg': No such file or directory @ error/blob.c/OpenBlob/2701.
convert-im6.q16: unable to open image `images/foo/biz.jpeg': No such file or directory @ error/blob.c/OpenBlob/2701.

我究竟做错了什么?

最小最大

更正的代码:

DIR="$@"
EXT="*.pdf"

mkdir -p "${DIR}/images"
shopt -s nullglob
for pdffile in "$DIR"*.pdf; do
    convert -density 300 -depth 8 -quality 90 -trim "${pdffile}" "$(dirname "${pdffile}")/images/$(basename "${pdffile%.*}").jpeg"
done

它应该将此images/foo/bar.jpeg导致错误的路径转换为此foo/images/bar.jpeg

解释:

"foo/bar.pdf"${pdffile}变量中拥有像这样的价值

dirname ${pdffile} -从路径中删除最后一个非斜杠组件,保留以下内容: "foo"

basename ${pdffile%} -相反,删除除文件名以外的所有文件,并保留以下内容: "bar.pdf"

最后,$images在这两个部分之间插入子目录名,并获得存储图像所需的路径- foo/images/bar.jpeg

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将图像文件保存在项目文件夹中?

来自分类Dev

将图像保存在特定的sdcard文件夹中

来自分类Dev

图像未保存在文件夹中

来自分类Dev

如何将.pdf文件转换为图像文件夹?

来自分类Dev

将所有.ape文件转换为不同子文件夹中的.flac

来自分类Dev

如何将编辑的csv文件保存在子文件夹中

来自分类Dev

将pdf转换为doc并保存在文件夹中

来自分类Dev

如何将.pdf文件转换为图像文件夹?

来自分类Dev

将所有.ape文件转换为不同子文件夹中的.flac

来自分类Dev

脚本将文件夹名称保存在文本文件中吗?

来自分类Dev

如何在Linux中一步将子文件夹中的jpg文件转换为每个pdf文件?

来自分类Dev

如何将图像文件保存在项目文件夹中?

来自分类Dev

Shell脚本程序可在一个文件夹中执行所有pdf文件,以将它们转换为.xml或.json格式,并将输出保存在另一个文件夹中

来自分类Dev

将图像保存在特定的sdcard文件夹中

来自分类Dev

将图像保存在iOS相册(我的文件夹)中,并保存图像URL

来自分类Dev

如何将多个文件夹中的pdf文件转换为与文件夹名称匹配的多个pdf文件

来自分类Dev

将文件夹中的不同文件批量转换为PDF

来自分类Dev

将图像以zip格式保存在php中的自定义文件夹中

来自分类Dev

将文本转换为文件并将其保存到文件夹中

来自分类Dev

如何使用SSIS将xls文件转换为xlsx文件并保存在文件夹中?

来自分类Dev

自动将PDF文件保存在新文件夹中

来自分类Dev

图像未保存在文件夹中

来自分类Dev

Excel VBA代码将文件夹中的rtf文件批量转换为pdf文件

来自分类Dev

如何将图像保存在文件夹中?

来自分类Dev

使用 tee 将日志文件保存在子文件夹中(在变量中定义)

来自分类Dev

如何将django中的图像保存在以对象ID命名的文件夹中?

来自分类Dev

make:将文件夹中的 .pdf 文件转换为 .txt 文件而不使用循环

来自分类Dev

Excel VBA将特定文件夹中的所有Word文件转换为PDF

来自分类Dev

将文件保存在 S3 子文件夹中

Related 相关文章

  1. 1

    如何将图像文件保存在项目文件夹中?

  2. 2

    将图像保存在特定的sdcard文件夹中

  3. 3

    图像未保存在文件夹中

  4. 4

    如何将.pdf文件转换为图像文件夹?

  5. 5

    将所有.ape文件转换为不同子文件夹中的.flac

  6. 6

    如何将编辑的csv文件保存在子文件夹中

  7. 7

    将pdf转换为doc并保存在文件夹中

  8. 8

    如何将.pdf文件转换为图像文件夹?

  9. 9

    将所有.ape文件转换为不同子文件夹中的.flac

  10. 10

    脚本将文件夹名称保存在文本文件中吗?

  11. 11

    如何在Linux中一步将子文件夹中的jpg文件转换为每个pdf文件?

  12. 12

    如何将图像文件保存在项目文件夹中?

  13. 13

    Shell脚本程序可在一个文件夹中执行所有pdf文件,以将它们转换为.xml或.json格式,并将输出保存在另一个文件夹中

  14. 14

    将图像保存在特定的sdcard文件夹中

  15. 15

    将图像保存在iOS相册(我的文件夹)中,并保存图像URL

  16. 16

    如何将多个文件夹中的pdf文件转换为与文件夹名称匹配的多个pdf文件

  17. 17

    将文件夹中的不同文件批量转换为PDF

  18. 18

    将图像以zip格式保存在php中的自定义文件夹中

  19. 19

    将文本转换为文件并将其保存到文件夹中

  20. 20

    如何使用SSIS将xls文件转换为xlsx文件并保存在文件夹中?

  21. 21

    自动将PDF文件保存在新文件夹中

  22. 22

    图像未保存在文件夹中

  23. 23

    Excel VBA代码将文件夹中的rtf文件批量转换为pdf文件

  24. 24

    如何将图像保存在文件夹中?

  25. 25

    使用 tee 将日志文件保存在子文件夹中(在变量中定义)

  26. 26

    如何将django中的图像保存在以对象ID命名的文件夹中?

  27. 27

    make:将文件夹中的 .pdf 文件转换为 .txt 文件而不使用循环

  28. 28

    Excel VBA将特定文件夹中的所有Word文件转换为PDF

  29. 29

    将文件保存在 S3 子文件夹中

热门标签

归档