所以我目前的shell脚本是:
for j in *.jpg
do
tesseract $j $j
done
其中 tesseract 将 jpg 文件转换为文本文件。使用此脚本,如果有文件 HAHA.jpg,则输出文件名变为 HAHA.jpg.txt 但我希望它只是 HAHA.txt
有没有办法将输出文件名设为 HAHA.txt 而不是 HAHA.jpg.txt?
如果你有一个 shell 变量j
,你可以去掉一个匹配给定模式的后缀,如下所示
${j%%.jpg}
where%%
表示最长的匹配后缀应该被移除,并且.jpg
是模式(“一个点,后跟三个字母:j、p 和 g”)。
在你的 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