したがって、私の現在のシェルスクリプトは次のとおりです。
for j in *.jpg
do
tesseract $j $j
done
tesseract は jpg ファイルをテキスト ファイルに変換します。このスクリプトでは、ファイル HAHA.jpg があった場合、出力ファイル名は HAHA.jpg.txt になりますが、HAHA.txt だけにしたい
出力ファイル名を HAHA.jpg.txt ではなく HAHA.txt にする方法はありますか?
シェル変数がある場合は、j
次のように特定のパターンに一致するサフィックスを削除できます
${j%%.jpg}
ここ%%
で、は最も長い一致する接尾辞を削除する必要があることを示し.jpg
、パターンです(「ドット、その後にj、p、gの3文字が続く」)。
tesseract コマンドの後に次の行を追加します。
for j in *.jpg
do
tesseract $j $j
mv ${j}.txt ${j/jpg/txt}
done
tesseract がファイルの名前を変更しても、変数$j
には HAHA.jpg が含まれます。
ベース名の使用:
for j in *.jpg
do
tesseract $j $(basename -s .jpg $j)
done