如何使用GNU Parallel编写ocrmypdf批处理命令?
OCRmyPDF 并行命令报错排查
错误根因
- 你通过
::: *.pdf传入parallel的每个{}占位符本身就包含完整的.pdf后缀,你自行拼接的.pdf会导致参数全部错位:
例如当前目录存在input.pdf,你写的命令实际会展开为:ocrmypdf --sidecar txt/input.pdf.txt input.pdf.pdf out/input.pdf.pdf
这里input.pdf.pdf不存在,ocrmypdf无法识别为输入文件,最终认为你没有传入必填的输出PDF参数,触发报错。
修复步骤
- 首先提前创建所需的输出目录,避免运行时报目录不存在错误:
mkdir -p txt out
- 替换并行命令为以下正确写法,用parallel内置的
{.}占位符自动去掉文件后缀:
parallel --tag -j 2 ocrmypdf --sidecar txt/{.}.txt {} out/{} ::: *.pdf
展开后完全匹配你需要的单文件格式,以input.pdf为例展开结果为:ocrmypdf --sidecar txt/input.txt input.pdf out/input.pdf
内容的提问来源于stack exchange,提问作者SkV
相关产品推荐
相关产品推荐

