pdfgrep 具有不同密码的多个文件

pdfgrep 具有不同密码的多个文件

我正在尝试 grep 受密码保护的 PDF(信用卡对账单)中的字符串。有多个具有不同密码的文件。这手册页(?) 说 --password=Value 可以指定多次,并且每个密码都会针对每个要 grep 的 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

仅使用了password2,并且仅对这些文件进行grep 处理。显然,如果password1 是最后给出的密码,则相反。

有几个问题:

  1. 如何向 pdfgrep 提供多个密码?
  2. 还有其他更简单的方法可以从月度报表中查找(或获取信用卡交易列表)吗?

不确定这是否重要,我正在尝试 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

如果您需要pdfgrep许多 pdf 文件,并且所有文件都有密码 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例子。

相关内容