このコマンドラインを使用して、フォルダ内のjpegをpdfに変換します。
for f in *.jpg; do echo "Converting $f"; convert "$f" "$(basename "$f" .jpg).pdf"; done
しかし、複数のフォルダにあるすべての.jpgを同じフォルダにある.pdfに変換したいと思います。 「フォルダAに移動してpdfに変換を開始し、完了したらフォルダBに移動して同じことを行います」というbashコマンドが必要です。
JPEGファイルは.jpgまたは.JPGで終わることもできます。
私のフォルダ構造は次のとおりです。
Folder A
File1.jpg
File1.jpg
File1.jpg
File1.jpg
File1.jpg
Folder B
File1.jpg
File1.jpg
File1.jpg
...
これを達成する方法についてのアイデアはありますか?
ベストアンサー1
*.jpg
更新された質問*.JPG
に従ってファイル名を受け入れるように更新されました。大文字と小文字を区別しない比較とパターンを使用した変数拡張の
ため。これは実際にはどんな場合でも一致します(例:)。-iname
${file%.[jJ][pP][gG]}
.jpg
.JpG
Folder A
とがFolder B
現在のディレクトリにあり、すべてのディレクトリで同じ操作を繰り返し実行したいとします。
find . -type f -iname \*.jpg | while read -r file
do
echo "Converting $file"
convert "$file" " ${file%.[jJ][pP][gG]}.pdf"
done
またはディレクトリ名を指定する場合
find "Folder A" "Folder B" type f -iname \*.jpg | ...
サブディレクトリの名前を指定していない場合は*.jpg
省略できます-type f
。
Folder A
サブディレクトリなどで再帰的に変換を実行したくない場合は、-maxdepth
条件を追加する必要があります。