2

我正在尝试在 PDF 文件中搜索多个关键词。我有大约 60 个 PDF 和大约 8 个关键词,不喜欢大约 480 个手动搜索。

我愿意接受其他建议(见下文),但目前我的方法是mdfind在 OS X 上使用,如下所示:

$finds = array();
foreach ($search as $term) {
    $result = "";
    $cleanResult = array();
    $shellQuery = "mdfind -onlyin \"$wd\" \"kind:pdf $term\"";
    echo "\n\n$shellQuery\n";
    $result = shell_exec($shellQuery);
    echo $result;
    $cleanResult = split("\n", $result);
    array_pop($cleanResult);
    $finds[$term] = $cleanResult;

    unset($result);
    unset($cleanResult);
}
print_r($finds);

然而,尽管这构建$shellQuery得很好,但由于某种原因$result,即使命令有效(即,如果我将 的值复制并粘贴$shellQuery到终端窗口中,它也会按预期工作)。

假设$search包含 'foo'、'bar' 和 'joe',它可能会找到 'foo' 和 'joe' 很好,但没有返回 'bar'。如果我从数组中删除 'foo' 和 'joe' 并只搜索 'bar',它会找到 'bar' 很好。通话之间需要休息吗?

顺便说一句,我首选的方法是执行以下操作:

find . -name "*.pdf*" -exec pdftotext {} - \; | grep -i -l "foo"

但我不能让它在终端工作。我已经安装了http://www.bluem.net/en/mac/packages/(我很难编译东西,所以像这样的包=竖起大拇指!),但每次我尝试将它传递给 grep(例如pdftotext myfile.pdf - | grep -i -l "foo") grep 只是返回(standard output),仅此而已。

4

0 回答 0