Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用shell脚本转换文件格式_Shell - Fatal编程技术网

使用shell脚本转换文件格式

使用shell脚本转换文件格式,shell,Shell,我想使用下面的shell脚本转换文件夹中所有图像文件的格式。我的想法是使用文件名的基本名称,并使用相同的名称命名要转换的文件。我从网上收集的这些线路不能满足我的要求。谢谢大家 for f in *.eps do echo "converting format....." filename=`basename ${f}` fbase=`$filename | cut -d'.' -f1` extn = ${fbase}.png convert -geometry 100

我想使用下面的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 

我想你需要更像这样的东西:

#!/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
注意


以“new=”开头的行正在变量“f”中执行bash替换,将行末尾的“eps”(即$)替换为“png”。

不要使用反勾号,而是使用
$(…)
。basename也可以删除后缀,
$echo$(basename test.eps.eps)。png
确定,我想他们更时髦,而且确实有优势。谢谢-我已经更新了答案,所以我和OP的坏习惯不会传播;-)