[英]Script to merge all image files from a folder inside a pdf
我經常需要在 pdf 中合並很多圖像。 自然,我想自動化一點。 這是我需要的東西:
1.jpg
、 2.jpg
和10.jpg
將按此順序合並,而不是1.jpg
10.jpg
2.jpg
)我遇到了一個與我需要的完全一樣的解決方案,但是對於名稱中包含空格的文件,它會失敗。
#!/bin/bash
convert `ls -v *.jpg *.jpeg *.JPG *.JPEG *.png *.PNG *.gif *.GIF *.tiff *.TIFF *.webp *.WEBP *.bmp *.BMP` compilation_images.pdf
在 shell 腳本方面,我完全是個菜鳥,所以如果我沒有看到一個簡單的解決方案,我提前道歉,但我自己找不到任何解決方案。
謝謝你的幫助。
正如您所發現的,嘗試解析ls
是錯誤的。 假設您使用的是 GNU 版本的實用程序,因為 linux 標記通常暗示,請嘗試以下操作:
#!/usr/bin/env bash
# Turn on case-insensitive globs and make ones that
# don't match anything expand to nothing
shopt -s nocaseglob nullglob
readarray -d '' -t images < <(printf "%s\0" *.jpg *.jpeg *.png *.gif *.tiff *.webp *.bmp | sort -Vz)
convert "${images[@]}" compilation_images.pdf
它使用用 nul 字符分隔文件名的常見技巧,以便在使用排序的文件名填充bash
數組時安全地處理空格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.