*.txt文書に変換するためにPopplerを使用している多くのPDFを含むディレクトリがありますpdftotext
。すべてのファイルを変換するには、次のコマンドがあります。
for f in *.pdf; do pdftotext $f; done
PDFは外部記憶装置にあるため、余分なスペースは必要ありません。出力を別のディレクトリにリダイレクトするにはどうすればよいですか?つまり、PDFが変換されるたびにPDFと同じディレクトリに書き込まれるのではなく、別の場所に書き込まれます。
答え1
これはdon_crisstiによって提案されたソリューションであり、UnixとLinuxに初めて接する人々のために説明しようとしました。この概要は初心者が作成したものですので、自由に編集してください。
for f in *.pdf; do pdftotext "$f" "/path/to/some/dir/${f%.*}.txt"; done
それでは、各コマンドを確認してみましょう。これは、現在の作業ディレクトリ内のすべてのファイルを繰り返す標準のforループです。for f in *.pdf
。このコマンドはf
インデックスとして使用されます。次のコマンドはPDFをテキストに変換します。これはユーザーがインストールしたと仮定します。poppler
:
pdftotext "$f" "/path/to/some/dir/${f%.*}.txt"
"$f"
入力を保存するために使用される名前PDFファイルを作成し、"/path/to/some/dir/${f%.*}.txt"
出力パスを指定します。txtファイル、つまりターゲットディレクトリ/path/to/some/dir/
と出力ファイル名${f%.*}.txt
、出力ファイル名は、デフォルトでファイル名から拡張子が削除された入力ファイル名("$f"
)です。.pdf
パラメータの置換そして.txt
サフィックスを追加します。