命令如下: 1 | for i in {1..10}; do for url in $(wget -O- -U "" "http://images.google.com/images?imgsz=xxlarge&hl=en&q=wallpaper&sa=N&start=${i}&ndsp=10" --quiet | grep -oe 'http://[^"]*\.jpg' ); do wget $url; done done
|
该命令是从google图片搜索上搜索wallpaper的大尺寸图片,匹配其中的jpg文件进行下载。
1 2 3 4 5 | for i in {1..10}; do
for url in $(wget -O- -U "" "http://images.google.com/images?imgsz=xxlarge&hl=en&q=wallpaper&sa=N&start=${i}&ndsp=10" --quiet | grep -oe 'http://[^"]*\.jpg' ); do
wget $url;
done
done
|
我们逐行说下这句shell的意思。 1. 这句好理解一个for循环,令i从1到10. 2. 这也是一个for循环, $()这个是说明将里面的内容执行然后逐一赋值给url。 wget 是一个非交互式的网络文件下载工具,如果未安装执行sudo apt-get install wget进行安装。-O指定下载后的输出文件,如果指定的文件是“-“,代表标准输出;-U 指定agent,而非wget自带的。–quiet安静模式 (无信息输出)。 然后通过管道(管道指|)将输出传递给grep命令(在文件或输入中进行查找的命令)-o指示只显示匹配到的东西,-e指示使用正则进行匹配, ‘http://[^"]*\.jpg’是一个正则表达式,这里不介绍了。 3. wget下载匹配到的url。 4,5. done表示for结束。 总结:该命令下载google的搜索结果,匹配jpg图片地址,然后逐一下载。 原创文章如转载请注明:转自Ubuntu之家 {www.ubuntuhome.com} |