我必须运行一个命令,使用bash脚本合并目录的每个子目录中的一些文件。 该脚本查找所有.ps文件,将它们更改为.png文件,然后合并目录的.png文件。必须为所有子目录执行此操作。
2_treeimages:包含目录列表。
对于2_treeimages中的每个目录 将.ps转换为png然后合并。
以下程序将文件转换为.png但在合并时出错,因为合并命令需要一个文件名列表,但这会给出一个字符串。
ps_dir=2_treeimages
for dirname in "$ps_dir"/*
do
inputlist=""
for filename in "$dirname"/*
do
if [ ${filename: -3} == ".ps" ]
then
filenoext="${filename%.*}"
result="$filenoext.png"
convert "$filename" "$result"
inputlist+="$result"
fi
done
combined_image="$dirname.png"
echo "$inputlist"
echo "$combined_image"
convert -append "$inputlist" "$combinedimage"
done
输入列表显示为 ' /2_treeimages/review12/review12sent0.png/2_treeimages/review12/review12sent1.png'
However it should be run as with 2 arguments
'/2_treeimages/review12/review12sent0.png'
'/2_treeimages/review12/review12sent1.png'
答案 0 :(得分:0)
我只想弄清楚如何使用数组,现在就可以了。 这就是我做的事情
ps_dir=2_treeimages
for dirname in "$ps_dir"/*
do
i=0 args=()
for filename in "$dirname"/*
do
if [ ${filename: -3} == ".ps" ]
then
filenoext="${filename%.*}"
result="$filenoext.png"
convert "$filename" "$result"
args[$i]="$result"
((++i))
fi
done
combined_image="$dirname.png"
convert "${args[@]}" -append "$combined_image"
done