今天遇到了这个事情,需求分析: 有个ftp的目录,里面有所有的文件,我们要下载其中的一部分,考虑要用wget搞,然后,这个下载的命令如下:
- wget --timestamping 'ftp://hgdownload.cse.ucsc.edu/goldenPath/hg19/chromosomes/chrM.fa.gz'
-
-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) |