2

我是 bash 的新手,所以这可能只是简单的回答,但我的研究还没有为我找到解决方案。我正在尝试编写一个简单的 bash 脚本来检查是否需要对 pdf 进行 OCR 处理。它使用pdftotext随 Xpdf 分发的可执行文件。如果pdftotext不输出任何文本,则需要对 PDF 进行 OCR 处理。问题是,如果 PDF 没有经过 OCR 处理,则pdftotext返回换页符字符(而不仅仅是空字符串)。尽我所能,我无法让 bash 将返回的字符串pdftotext与表单提要进行比较。

这是我的代码:

pdf_txt=$(pdftotext -q -l 5 '/Path/to/pdf/test.pdf' -)
if [ "$pdf_txt" = "\f" ]
then
    echo 'needs ocr'
else
    echo "doesn't need ocr"
fi

现在,test.pdf还没有经过 OCR 处理。如果我在 Python 中运行这个测试并使用repr()I get \x0c,换页符的字符代码。但是bash 中的echoing$pdf_txt只打印空行。

想法?建议?

4

1 回答 1

3

This

"\f"

does not do what you think it does. Use ANSI-C Quoting:

$'\f'

Also,

pdf_txt="$(pdftotext -q -l 5 '/Path/to/pdf/test.pdf' -)"
于 2014-07-21T04:06:59.063 回答