ディレクトリを繰り返しパスし、PDFをocrsし、PDFを更新するスクリプトを更新しています。
シンプルなバージョンでは動作します。
ocrmypdf -l vie --deskew --clean --force-ocr --sidecar vietnamese_website.txt Vietnamese\ Website.jpg Vietnamese\ Website.pdf --verbose 1
フォルダを繰り返し繰り返し、さまざまなファイル形式を使用したいので、検索を次に拡張しました。
find . \( -name '*.pdf' -o -name '*.jpg' -o -name '*.tiff' -o -name '*.jpeg' -o -name '*.tif' -o -name '*.png' \)
バッチ処理と並列処理の例は次のとおりです。
find . -name '*.pdf' | parallel --tag -j 2 ocrmypdf -l languages --deskew --clean --force-ocr --verbose 1 '{}' '{}'
私の質問は2つの部分に分かれています。
「言語」は、サポートされているハイパースクエアトレーニングデータの完全なリストのエイリアスです。拡張するには、macOSのシェルに次のように入力します。エイリアス言語='eng+rus+vie+ukr+fra+spa+afr+amh+ara+asm+aze+aze_cyrl+bel+ben+bod+bos+bre +bul+cat+ceb+ces+chi_sim+chi_sim_vert+chi_tra +chi_tra_vert+chr+cos+cym+dan+dan_frak+deu+deu_frak+div+dzo+ell+eng+enm+epo+equ+est+eus+fao+ fas+ fil+ fin+fra+frk+frm+fry+gla+ gle+glg+grc+guj+hat+heb+hin+hrv+hun+hye+ik... など - ocrmypdf は、自分の言語がこれと同じだと思います。 --sidecarにテキストファイルを出力させたいです。 '{}.txt'はそのようなファイルがないと文句を言います。これが私がいるところです。
find . \( -name '*.pdf' -o -name '*.jpg' -o -name '*.tiff' -o -name '*.jpeg' -o -name '*.tif' -o -name '*.png' \) | parallel --tag -j 2 ocrmypdf -l languages --deskew --clean --force-ocr --sidecar '{}.txt' '{}' '{}' --verbose 1
必要なものを見つけることができる場所から得ましたが、--sidecarは満足できませんでした。それでは、エイリアスと '$1.txt'はどうすればいいですか?
ベストアンサー1
私の考えには2つのポイントがあると思います。
- エイリアス拡張はオプションではなく、最初の単語でのみ機能します。
- 提供された名前をいくつか変更する必要があります
find
。
find
コマンドラインからすべてのことを実行できますが、この目的のためにスクリプトを作成する方が簡単だと思いましたocrmypdf.sh
。
#!/bin/bash
languages='eng+rus+vie+...'
base="${1%.*}
ocrmypdf -l "$languages" --deskew --clean --force-ocr --sidecar "$base.txt" "$1" "$base.pdf --verbose 1
その後、実行します。
find . \( -name '*.pdf' -o -name '*.jpg' -o -name '*.tiff' -o -name '*.jpeg' -o -name '*.tif' -o -name '*.png' \) | parallel --tag -j 2 ocrmypdf.sh '{}'