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」。你將如何繼續劇本? –