現在のディレクトリのすべてのPDFをPNGに変換

現在のディレクトリのすべてのPDFをPNGに変換

.pdf現在のディレクトリ内のすべてのファイルをファイルに変換するBashスクリプトを作成したいと思います.png

たとえば、

$ls .
a.pdf b.pdf

$./pdf2png.sh
Converting pdfs to pngs
a.pdf -> a.png
b.pdf -> b.png

最善の試みは次のとおりです。

#!/bin/bash
convert -verbose -density 500 -resize '800' a.pdf a.png
convert -verbose -density 500 -resize '800' b.pdf b.png

ベストアンサー1

お持ちの場合本物奇妙な名前、改行やバックスラッシュなどを含む名前は、次のようにすることができます。

find . -type f -name '*.pdf' -print0 |
  while IFS= read -r -d '' file
    do convert -verbose -density 500 -resize 800 "${file}" "${file%.*}.png"
  done

あなたが投げるすべてを処理できるはずです。

使用のヒント:

  • find ... -print0find結果はヌル文字で区切られて印刷されるため、改行文字を処理できます。
  • IFS=: スペースを処理するための単語分割を無効にします。
  • read -r:バックスラッシュを含むファイルを処理するときにバックスラッシュエスケープ文字の解釈を無効にします。
  • read -d '':findの出力を処理し、改行文字を含むファイル名を正しく処理するには、レコード区切り文字をNULL文字に設定します。
  • ${file%.*}.png:シェルに組み込まれている機能を使用します。文字列操作機能拡張機能を削除してください。

おすすめ記事