2013-03-21 94 views
0

所以我目前的shell脚本是:的UNIX shell脚本:如何修改输出相应的文件名

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

其中正方体JPG文件转换为文本文件。 有了这个脚本,如果有一个文件HAHA.jpg,然后输出文件名变为 HAHA.jpg.txt但我希望它只是HAHA.txt

有没有一种方法,使输出文件名称为HAHA.txt而不是HAHA.jpg.txt?

回答

0

加入这一行的tesseract的命令后:

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

即使正方体已更名为您的文件,该变量$j将包含HAHA.jpg。

+0

谢谢!你能告诉我什么是$ {j/jpg/txt}行吗?我对shell脚本很陌生,!在HAHA.jpg中使用 – Sardonic 2013-03-21 05:51:11

+0

,它将tpg替换为jpg – Guru 2013-03-21 05:51:52

2

如果你有壳可变j可以剥离后缀如下

${j%%.jpg} 

%%表示最长匹配后缀应该被去掉,.jpg是图案(“点匹配给定的图案,后跟三个字母:j,p和g“)。

+0

剥离任何分机,你可以使用$ {Ĵ%%。*}。 – DavidA 2013-03-21 05:44:27

0

使用基本名称:

for j in *.jpg 
do 
    tesseract $j $(basename -s .jpg $j) 
done