2014-02-12 29 views
0

我想使用以下shell脚本转换文件夹中所有图像文件的格式。我的想法是使用文件名的基本名称,并使用相同的名称来命名要转换的文件。我从互联网上收集这些线路,并不能满足我的要求。谢谢大家。使用shell脚本转换文件格式

for f in *.eps 
do 
echo "converting format....." 
filename=`basename ${f}` 
fbase=`$filename | cut -d'.' -f1` 
extn = ${fbase}.png 
    convert -geometry 1000x1000 -density 300 -trim ${f} $extn 
done 

回答

1

我认为你需要更多的东西是这样的:

#!/bin/bash 
for f in *.eps 
do 
    new=${f/eps$/png} 
    echo Converting $f to $new 
    convert -geometry 1000x1000 -density 300 -trim "$f" "$new" 
done 

注意

线开始 “新=” 正在执行中的变量 “F” 一个bash替代,在行末(即$)用“png”代替“eps”。

+0

请勿使用反引号,请使用'$(...)'代替。 –

+0

和basename也可以删除后缀,'$ echo $(basename test.eps .eps).png' –

+0

好吧,我猜他们更时髦,确实有优势。谢谢 - 我已经更新了答案,所以我和OP的坏习惯不会传播;-)考虑到OP的细节缺乏, –