パスワードで保護されたPDF(クレジットカード明細書)で文字列を見つけようとしています。パスワードの異なるファイルが複数あります。これマンページ(?) --password=Value を複数回指定でき、各パスワードは grep'd される各 PDF ファイルに対して試行されます。ところで、最後のパスワードだけが使用されたことを発見しました。
pdfgrep -P "[0123][0-9] [JFMASOND][aepuco][nbrylgptv] [012][0-9].+[0-9,]+\.[0-9][0-9] *([cC][rR])?" --password=password1 --password=password2 *.pdf
パスワード2のみが使用され、これらのファイルのみがgrepされます。確かに、パスワード1が与えられた最後のパスワードであればその逆になります。
いくつかの質問があります:
- pdfgrepに複数のパスワードを提供する方法は?
- 毎月の明細書で簡単に見つけることができる(またはクレジットカード取引リストを取得する)他の方法はありますか?
これが重要かどうかわからない場合は、cygwinを試しています。
答え1
インストールされていない場合は必要になる場合があります。
Bash用のCygwinパッケージの概要
スクリプトを使用して別の行に配置できます。
#!/bin/bash
pdfgrep -P "[0123][0-9] [JFMASOND][aepuco][nbrylgptv] [012][0-9].+[0-9,]+\.[0-9][0-9] *([cC][rR])?" --password=password1 file1.pdf
pdfgrep -P "[0123][0-9] [JFMASOND][aepuco][nbrylgptv] [012][0-9].+[0-9,]+\.[0-9][0-9] *([cC][rR])?" --password=password2 file2.pdf
exit 0
保存場所:pdfgrep_password.sh
スクリプトモードを実行可能ファイルに変更:chmod +x pdfgrep_password.sh
実行: ./pdfgrep_password.sh
多くのPDFファイルが必要pdfgrep
で、すべてパスワード1またはパスワード2がある場合は、ファイルが許可するパスワードを見つけてすべてのファイルを繰り返します。pass_check.sh
などとして保存
#!/bin/bash
for file in *.pdf; do
pdfgrep -Pq "[0123][0-9] [JFMASOND][aepuco][nbrylgptv] [012][0-9].+[0-9,]+\.[0-9][0-9] *([cC][rR])?" --password=pass "$file" 2> /dev/null
if [ $? == 2 ]; then
echo ""$file" DENIES #1."
else
echo ""$file" ACCEPTS #1."
fi
pdfgrep -Pq "[0123][0-9] [JFMASOND][aepuco][nbrylgptv] [012][0-9].+[0-9,]+\.[0-9][0-9] *([cC][rR])?" --password=word "$file" 2> /dev/null
if [ $? == 2 ]; then
echo ""$file" DENIES #2."
else
echo ""$file" ACCEPTS #2."
fi
done
exit 0
以下を削除できます。
echo ""$file" DENIES...
else
どちらの行もコンソール出力を読みやすくするために、両方のセクションから出てきます。私はそれをelse
例として使用しています。