1
我想编写一个脚本,它可以运行一个命令到OCR
pdfs,在写入文本文件后删除生成的图像。将使用GNU并行的两个命令组合起来用于OCR项目
我想要结合的两个命令如下。
该命令创建文件夹,提取从每个PDF
pgm
,并将它们添加到每个文件夹中:
time find . -name \*.pdf | parallel -j 4 --progress 'mkdir -p {.} && gs -dQUIET -dINTERPOLATE -dSAFER -dBATCH -dNOPAUSE -dPDFSETTINGS=/screen -dNumRenderingThreads=4 -sDEVICE=pgmraw -r300 -dTextAlphaBits=4 -sProcessColorModel=DeviceGray -sColorConversionStrategy=Gray -dOverrideICC -o {.}/{.}-%03d.pgm {}'
此命令不会在OCR并删除所得到的图像(pgm
):
time find . -name \*.pgm | parallel -j 4 --progress 'tesseract {} {.} -l deu_frak && rm {.}.pgm'
我想要合并这两个命令,以便脚本在每个OCR之后删除pgm
图像。如果我运行上述命令,第一个命令将提取图像并占用我的磁盘空间,然后第二个命令将执行OCR,并且只有在这之后删除图像作为最后一步。
所以,
- 从PDF 创建文件夹
- 提取PGM从PGM
- OCR为TXT
- 删除PGM图像,这只是已使用(失踪)
基本上,我希望这4个步骤按此顺序完成,每个PDF
分开,并非全部PDF
处于打开状态CE。我怎样才能做到这一点?
编辑:
我解决我的问题,第一次尝试是建立以下命令:
time find . -name \*.pdf | parallel -j 4 -m --progress --eta 'mkdir -p {.} && gs -dQUIET -dINTERPOLATE -dSAFER -dBATCH -dNOPAUSE -dPDFSETTINGS=/screen -dNumRenderingThreads=4 -sDEVICE=pgmraw -r300 -dTextAlphaBits=4 -sProcessColorModel=DeviceGray -sColorConversionStrategy=Gray -dOverrideICC -o {.}/{.}-%03d.pgm {}' && time find . -name \*.pgm | parallel -j 4 --progress --eta 'tesseract {} {.} -l deu_frak && rm {.}.pgm'
然而,正方体不会找到语言包。
请报$ 1和$ 2 - 否则你-print0的使用并没有真正有所作为:'回声 “$ 1” “$ 2”'。 –
使用函数增加了奖励:在单个文件上测试非常简单。 –
嗨马克塞切尔,感谢提出一个解决方案。看上去不错!不幸的是,我不能通过将'n'粘贴我的命令到你的脚本来使它工作。请注意,我是这样的初学者。你会如此善良,以创建一个可行的解决方案与我的命令?这将是太棒了!想象一下,您将在名为** test **的文件夹中具有“PDF”。你将如何继续剧本? –