-------------------

蓝色粗体:人名

红色字体:加粗重点(或者作者PS)
----------------------------------

 For循环语法:
  1. for 语法:   
  2. for [ condition ]    
  3. do   
  4.     command1   
  5.     command1   
  6.     commandN   
  7. done   
 
一、批量下载51cto运维趋势资源
 
煮酒品茶:无事逛的时候突然发现51运维趋势下载地址如下:
http://os.51cto.com/os/linuxops/pdf/51CTO_linuxops_issue1.pdf一想,构造了个
http://os.51cto.com/os/linuxops/pdf/51CTO_linuxops_issue2.pdf可以下载,于是就有此脚本的前提。

思路:循环后用wget批量下载。
#vim 51ctodown
 
  1. for((i=1;i<30;i++)) 
  2. do 
  3. wget http://os.51cto.com/os/linuxops/pdf/51CTO_linuxops_issue$i.pdf 
  4. done 

#chmod +x 51ctodown
#./51ctodown
 
二、写脚本批量重命名文件
 
煮酒品茶:下载后发现文件名并不是我们想要的。故动手操作一下。

思路:文件名呈51CTO*.1.pdf 51CTO*.2.pdf ...方式,这个规律可找。那么我们要改完后的文件名如何来找呢?首先想到的是去官方找找有没有Linux运维趋势的目录,那样就非常简单了。结果悲剧了,最后把找着的文件进行筛选后得到可规律的顺序,然后再用for来重命名,没想到最后整了将近2,3个小时,幸好有dn833以及老男孩的指点才得以继续下去。看过程吧。
 
访问http://os.51cto.com/art/201011/233915.htm把发布通告给copy到一个文件中。命名为cc.html
以主题来查找标题并导出为cc1.html
#cat cc.html |grep 主题>cc1.html
 把年份给去掉
#awk -F"," '{ print $2 $3 }' ~/test/cc1.html>cc2.html
------------------------
[root@localhost test]# cat cc2.html
《趋势》12期主题:服务器故障排除
《趋势》特刊主题:Linux开发 #发现这个没用,册掉。
《趋势》第11期主题:iptables原理与常见应用场景
《趋势》第10期主题:日志分析技巧分享
《趋势》第9期主题:Puppet
《趋势》第8期主题:双机
《趋势》第7期主题:网站迁移
《趋势》第6期主题:备份
《趋势》第5期主题:内网开发环境
《趋势》第4期主题:性能瓶颈
《趋势》第3期主题:运维与开发
《趋势》第2期主题:可用性
《趋势》第1期主题:监控与报警
《趋势》第0期主题:运维自动化               #发现这个没用,册掉。
--------------------------------
把顺序给弄反过来,更符合我们的需求。
# tac cc2.html >cc3.html
---------------------------------
[root@localhost test]# cat cc3.html
《趋势》第1期主题:监控与报警
《趋势》第2期主题:可用性
《趋势》第3期主题:运维与开发
《趋势》第4期主题:性能瓶颈
《趋势》第5期主题:内网开发环境
《趋势》第6期主题:备份
《趋势》第7期主题:网站迁移
《趋势》第8期主题:双机
《趋势》第9期主题:Puppet
《趋势》第10期主题:日志分析技巧分享
《趋势》第11期主题:iptables原理与常见应用场景
《趋势》12期主题:服务器故障排除
-----------------------------------
 
 
#vim mvname
 
  1. for((i=1;i<=13;i++)) 
  2. do 
  3. #sed -n $ip 51cton1 
  4. #echo $i 
  5. mv 51CTO_linuxops_issue$i.pdf `sed -n "$i"p cc3.html`.pdf 
  6. #sed -n "$i"p 51cton1 
  7. #mv test 'sed -n '3p' 51cton1' 
  8. #i=3 
  9. #mv test `sed -n 'p' 51cton1` 
  10. done 
-------------------------------
#chmod +x mvname
#./mvname
 
最终结果:
------------------------------------------------
[root@localhost test]# ls
11                            51CTO_linuxops_issue2.pdf  a
51cto                         51CTO_linuxops_issue3.pdf  cc1.html
51cto1                        51CTO_linuxops_issue4.pdf  cc2.html
51CTO_linuxops_issue10.pdf    51CTO_linuxops_issue5.pdf  cc3.html
51CTO_linuxops_issue11.pdf    51CTO_linuxops_issue6.pdf  cc.html
51CTO_linuxops_issue12.pdf    51CTO_linuxops_issue7.pdf  centos-init
51CTO_linuxops_issue13.pdf    51CTO_linuxops_issue8.pdf  mvname
51CTO_linuxops_issue15.pdf    51CTO_linuxops_issue9.pdf  wd
51CTO_linuxops_issue15.pdf.1  51cton
51CTO_linuxops_issue1.pdf     51ctoname
[root@localhost test]# ./mvname
[root@localhost test]# ls
11                            wd
51cto                         《趋势》12期主题:服务器故障排除.pdf
51CTO_linuxops_issue15.pdf    《趋势》第10期主题:日志分析技巧分享.pdf
51CTO_linuxops_issue15.pdf.1  《趋势》第11期主题:iptables原理与常见应用场景.pdf
51cton                        《趋势》第1期主题:监控与报警.pdf
51ctoname                     《趋势》第2期主题:可用性.pdf
a                             《趋势》第3期主题:运维与开发.pdf
cc1.html                      《趋势》第4期主题:性能瓶颈.pdf
cc2.html                      《趋势》第5期主题:内网开发环境.pdf
cc3.html                      《趋势》第6期主题:备份.pdf
cc.html                       《趋势》第7期主题:网站迁移.pdf
centos-init                   《趋势》第8期主题:双机.pdf
mvname                        《趋势》第9期主题:Puppet.pdf
---------------------------------------------------------------
 
煮酒品茶:好累,在写重命名规则的时候,一直找问题。mv 51CTO_linuxops_issue$i.pdf `sed -n "$i"p 

cc3.html`.pdf 这一段弄的我想死的心都有,sed 后变量好像是固定的。-n '$ip' -n "$ip" -n '$i'p 都不行 最后一一排查,得出sed -n "$i"p filename 才完成。才有上面那么多的#...也小小的反思了一下。在有问题的时候百度,以及找前辈们指导是王道。那么后续了?心有点小急,浪费了这么多的时间。一直以为脚本出错,循环出错,就没想到是sed后变量出错。以后排查问题得细心加耐心。另本文只提供思路,实际操作过程很简单,高手勿笑。
 
更新:dn833的建议非常好啊,越前越好,脚本能简就简。不过得先把目录给定义好才能够下载。适于自动化吧
------------------------------
北京--dn833 15:48:22 
其实你wget的时候就能指定输出名的
------------------------------
Wget时就重命名:
 
  1. for((i=1;i<30;i++)) 
  2. do 
  3. wget http://os.51cto.com/os/linuxops/pdf/51CTO_linuxops_issue$i.pdf 
  4. mv 51CTO_linuxops_issue$i.pdf `sed -n "$i"p cc3.html`.pdf 
  5. done 
看张效果图吧:
 
 

 
参考链接:(老男孩大哥)http://oldboy.blog.51cto.com/2561410/711342/
感谢:老男孩大哥以及51CTO.com-linux.dn833的大力指导