解壓縮子目錄中的所有檔案並以原始目錄後重命名它們

解壓縮子目錄中的所有檔案並以原始目錄後重命名它們

我最終陷入了一個奇怪的境地。我有 35 個資料夾。第一個命名為 1,第二個命名為 2,依此類推。每個資料夾中都有 4 個檔案。 「1.png」、「2.png」、「3.png」、「4.png」。在每個資料夾中,我希望運行“convert *.png -append out.pdf”,並在其原始目錄之後重命名每個“out.pdf”(例如第一個資料夾中的“out1.pdf ”),然後解壓每個資料夾pdf 從其原始資料夾。這可能嗎?我嘗試過循環,但我嘗試過的所有內容似乎都不符合命名系統。

答案1

試試這樣的事情:

#!/bin/sh

for dir in $(seq 1 35)
do
    (
         cd $dir || exit 1
         rm -f out$dir.pdf
         for n in 1 2 3 4
         do
             convert $n.png -append out$dir.pdf  || exit 2
         done
    )
done

該腳本符合 posix 標準並且不需要bash,因此#!/bin/sh.

括號之間的程式碼在子 shell 中運行,因此該cd命令僅更改目錄,直到右括號為止。循環的下一次迭代將從原始工作目錄開始。

在您的示例中,我認為 的語法convert不正確。 Convert 僅需要一個輸入文件,而在您最初的問題中,*.png將傳遞四個輸入文件。也許這是你問題的一部分。

相關內容