0

したがって、私の現在のシェルスクリプトは次のとおりです。

for j in *.jpg
do
  tesseract $j $j
done

tesseract は jpg ファイルをテキスト ファイルに変換します。このスクリプトでは、ファイル HAHA.jpg があった場合、出力ファイル名は HAHA.jpg.txt になりますが、HAHA.txt だけにしたい

出力ファイル名を HAHA.jpg.txt ではなく HAHA.txt にする方法はありますか?

4

3 に答える 3

2

シェル変数がある場合は、j次のように特定のパターンに一致するサフィックスを削除できます

${j%%.jpg}

ここ%%で、は最も長い一致する接尾辞を削除する必要があることを示し.jpg、パターンです(「ドット、その後にj、p、gの3文字が続く」)。

于 2013-03-21T05:43:21.683 に答える
0

tesseract コマンドの後に次の行を追加します。

for j in *.jpg
do
  tesseract $j $j
  mv ${j}.txt  ${j/jpg/txt}
done

tesseract がファイルの名前を変更しても、変数$jには HAHA.jpg が含まれます。

于 2013-03-21T05:49:01.123 に答える
0

ベース名の使用:

for j in *.jpg
do
  tesseract $j $(basename -s .jpg $j)
done
于 2013-03-21T05:52:03.220 に答える