所以我当前的shell脚本是:
for j in *.jpg
do
tesseract $j $j
done
其中tesseract将jpg文件转换为文本文件。 使用此脚本,如果有文件HAHA.jpg,则输出文件名称变为, HAHA.jpg.txt但我希望它只是HAHA.txt
有没有办法让输出文件名为HAHA.txt而不是HAHA.jpg.txt?
答案 0 :(得分:2)
如果您有一个shell变量j
,您可以删除与给定模式匹配的后缀,如下所示
${j%%.jpg}
其中%%
表示应删除最长匹配后缀,.jpg
为模式(“一个点,后跟三个字母:j,p和g”)。
答案 1 :(得分:0)
在tesseract命令后添加此行:
for j in *.jpg
do
tesseract $j $j
mv ${j}.txt ${j/jpg/txt}
done
即使tesseract已重命名您的文件,变量$j
也将包含HAHA.jpg。
答案 2 :(得分:0)
使用basename:
for j in *.jpg
do
tesseract $j $(basename -s .jpg $j)
done