我有一个我用于Cygwin的脚本,它抓取URL并将它们保存到默认文件夹。我想要做的是进一步指定和自动化,所以我不必太乱用它。
这是当前的脚本:
curl "http://ids.lib.harvard.edu/ids/view/Converter?id=[45477234-45477312]&c=jpgnocap&s=2&r=0&x=0&y=0&w=2400&h=2400" -o "#1.jpg"
这样做是将特定图像作为jpg保存在默认文件夹中的有限窗口中。 " x ="和" y ="确定此大图像(如7000x9000)图像上的第一个像素值的位置。我一直试图通过缝合将这些图像拼凑在一起。
我希望通过将x和y值递增特定量(即每次出现2400次)来自动执行此操作。我知道如何做范围,但我想增加2400(0,2400,4800,7200,9600),看起来将逗号放入方括号并不起作用。
此外,我想确保当它返回到每个网址时,它不会自行保存。我想要一组带有结尾的分组图像((0),(1)等),我可以将它们作为指南将它们放在一起。 (PS如果你知道自动化这个过程的好方法,我很乐意听到。)
我认为这个修复非常简单,但我是bash脚本的新手。非常感谢您的帮助!
答案 0 :(得分:0)
所以显而易见的方法是使用嵌套循环进行网格拼接,这是我们首先从输入(-x
和-y
)读取max x和y坐标然后循环的示例通过可能性从0,0
一直到$x_max, $y_max
:
#! /bin/bash
while [[ $# -gt 0 ]]; do
case $1 in
-x )
x_max=$2
shift
;;
-y )
y_max=$2
shift
;;
* )
echo "unknown option" && exit 2
;;
esac
shift
done
for (( xcord = xcounter = 0; xcord <= $x_max; xcord+=2400, xcounter+=1 )); do
for (( ycord = ycounter = 0; ycord <= $y_max; ycord+=2400, ycounter+=1 )); do
curl "http://ids.lib.harvard.edu/ids/view/Converter?id=[45477234-45477312]&c=jpgnocap&s=2&r=0&x=${xcord}&y=${ycord}&w=2400&h=2400" -o "#${xcounter}_${ycounter}.jpg"
done
done