回答:
おそらくpdfinfo
(ここではpoppler-utils
パッケージのFedoraで)実行すると手がかりが得られますか?
PDFファイルの情報のほとんどは最後に辞書にあるため、見つかった場合は問題ないはずです。私は次のようなことをします:
for f in *.pdf; do
if pdfinfo "$f" > /dev/null; then
: Nothing
else
echo "$f" is broken
fi
done
pdfinfo
かpdftotext
...
PDFをチェックするのに最適なツールはqpdf
です。qpdf
には、--check
PDFの問題を見つけるのに役立つ引数があります。
qpdf
:qpdf --check test_file.pdf
qpdf
。find ./directory_to_scan/ -type f -iname '*.pdf' \( -exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \; -o -exec echo "{}": FAILED \; \)
コマンドの説明:
find ./directory_to_scan/ -type f -iname '*.pdf'
「.pdf」拡張子を持つすべてのファイルを検索します
-exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \;
qpdf
見つかったファイルごとに
実行し、すべての出力をにパイプします/dev/null
。戻りステータスqpdf
が0(エラーなし)の場合、ファイル名の後に ':OK'を続けて出力します
-o -exec echo "{}": FAILED \; \)
これは、エラーが見つかった場合に実行されます。ファイル名の後に「:FAILED」が続きます
qpdf
:qpdf
LinuxとWindowsの両方のバイナリがhttps://github.com/qpdf/qpdf/releasesで利用可能です。また、選択したパッケージマネージャーを使用して取得することもできます。たとえば、Ubuntuでは、次のコマンドでaptを使用してqpdfをインストールできます。
apt install qpdf
私は自分自身に答えを得ました:
for x in *.pdf; do echo "$x"; pdfinfo "$x" | grep Pages; done
エラーのあるPDFにはエラーが表示されます。
ls
:mywiki.wooledge.org/ParsingLs
find (1)
ます。:-)
私が使用した、pdfinfo
またはpdftotext
機能しなかったすべての方法。実際、彼らは私に誤検知を与え続け、時々私が必要としないファイルを作成しました。
仕事をしたのはJHOVEでした。
インストール:
上記のリンクからjarをインストールし、次のコマンドでPATH環境変数を更新します。
echo "export PATH=\$PATH:/REPLACE_WITH/YOUR/PATH_TO/jhove/" >> ~/.bash_profile
で各端末を更新すると
source ~/.bash_profile
、システム全体で使用を開始できます。
基本的な使用法:
jhove -m pdf-hul someFile.pdf
ほとんどの人が必要とするよりも多くのPDFに関する多くの情報を取得します。
Bash One-Liner:
単に戻るvalid
かinvalid
:
if [[ $(jhove -m pdf-hul someFile.pdf | grep -a "Status:") == *"Well-Formed and valid"* ]]; then echo "valid"; else echo "invalid"; fi;
これはMac OS Xで実行されましたが、UnixベースのBash環境でも同じように動作することに注意してください。