スキャンしたドキュメントの名前付けとデータベースへの「添付」を自動化するために最終的に使用したいbashシェルスクリプトを作成しています。スクリプト OCR は、pdf の最初のページのセクションであり、3 行を含むテキスト ファイルを出力します。名前、一意の ID、および日時文字列:
ジョン・スミス
事件番号:
234567 ( ) 2013/09/04 11:34 AM
私がやりたいことは、変数として"Smith, John"と"234567" という2 つの別々の文字列になることです。この番号を抽出するために sed/awk/etc で正規表現を使用する方法を探しています。1 つの問題は、OCR が次のような文字列をほとんど出力しないことです。
"Case #2 234567 ( )"
また
"Ca$e # 2234567 ( 7"
したがって、文字列の最後の 6 桁のみを取得することを考えています。これは、最後の 6 桁が誤って読み取られるのは、おそらく 10,000 分の 1 にすぎないからです。この一意の ID は 6 桁のみで、常に 200000 ~ 999999 の間です。私は正規表現を学んでいますが、遅いです。どんな助けでも大歓迎です。
編集:
今のところ私は使用しています:
casename="$(cat test.txt | sed '1!d')"
casenum="$(cat test.txt | sed -n -r 's/.*([0-9]{6}).*/\1/p')"
echo ${casenum} ${casename}
234567 Smith, John
なぜこれが良い方法ではないのか、または改善できる点についての意見は (非常に) 歓迎されます。