Chinaunix首页 | 论坛 | 博客
  • 博客访问: 468204
  • 博文数量: 118
  • 博客积分: 4015
  • 博客等级: 上校
  • 技术积分: 1233
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-24 22:11
文章分类

全部博文(118)

文章存档

2013年(5)

2011年(61)

2010年(52)

分类: LINUX

2011-09-15 19:50:56

今天遇到了这个事情,
需求分析: 有个ftp的目录,里面有所有的文件,我们要下载其中的一部分,考虑要用wget搞,然后,这个下载的命令如下:
  1. wget --timestamping 'ftp://hgdownload.cse.ucsc.edu/goldenPath/hg19/chromosomes/chrM.fa.gz'
  2. -O chrM.fa.gz
我的解决方式如下: 首先获取目录,如下 
20-Mar-2009 08:58 70M 20-Mar-2009 09:02 33K 20-Mar-2009 09:02 178K 20-Mar-2009 08:58 75M 20-Mar-2009 08:58 61M 20-Mar-2009 08:59 59M 20-Mar-2009 09:02 190K 20-Mar-2009 09:02 57K 20-Mar-2009 09:02 61K 20-Mar-2009 08:59 56M 20-Mar-2009 08:59 52M 20-Mar-2009 09:02 768K 20-Mar-2009 09:02 1.5M 20-Mar-2009 09:02 1.3M 20-Mar-2009 09:02 1.3M 20-Mar-2009 09:02 1.2M 20-Mar-2009 09:02 1.3M 20-Mar-2009 09:02 1.3M 20-Mar-2009 08:59 48M 20-Mar-2009 09:02 60K 20-Mar-2009 09:00 45M 20-Mar-2009 09:02 13K 20-Mar-2009 09:02 12K 20-Mar-2009 09:00 38M 20-Mar-2009 09:02 18K 20-Mar-2009 09:02 24K 20-Mar-2009 09:02 61K 20-Mar-2009 09:02 12K 20-Mar-2009 09:00 41M

将这部分放入vi中,首先去掉行首的空格 
:%s/^\s\s*//g 
写入文件a中 
:w a
然后,cut出来第一列
# cut -d ' ' -f 1 a > b; rm a
然后paste 出命令的尾部
#paste b b >c这样,我们就有了命令的尾部,但是需要加一个' -O ,这时可以使用vi的替换如下
:%s/\s\s*/' -O  /g

这样,我们就有了命令的尾部,命令的前面部分,是一样的,所以,可以替换如下
%s/^/wget --timestamping 'ftp:\/\/hgdownload\.cse\.ucsc\.edu\/goldenPath\/hg19\
/chromosomes\//g
这样,我们就得到了命令了,下面将这个文件做成批处理的sh
:w d.sh
然后,
#chmod +x d.sh
#nohup ./d.sh & 
OK了
当然,别忘了筛选出我们要下的文件,
 grep 'chrUn\|random\|apd_hap1\|cox_hap2\|dbb_hap3\|mann_hap4\|mcf_hap5\|qbl_hap6\|ssto_hap7\|ctg9_hap1\|ctg5_hap1' targets > file
阅读(4146) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~