【shell脚本】通过遍历文件的一种批量执行shell命令的方法。

在分析数据时,经常会有许多机械重复的命令带入,作为一个半路出家的程序猿,我曾经对这种工作束手无策。不像一个熟手那样举重若轻的分析,感觉自己的生信分析完全是个体力活。为了打开这样的局面,我开始学习如何批量处理这些文件名格式差不多的文件。

 1 work_dir=/home/genomics/data/rice/variantcalling
 2 reference=/home/genomics/data/rice/ref-database/*****
 3 bwa_dir=$work_dir/resourses/apps/bwa-0.7.11
 4 picard_dir=$work_dir/resourses/apps/picard-tools-1.119
 5 for i in *sam
 6 do
 7 echo $i
 8 echo ${i%.*}.sorted.bam
 9 nohup java -Xmx60g -jar $picard_dir/AddOrReplaceReadGroups.jar \
10 I=$i \
11 O=${i%.*}.sorted.bam \
12 SORT_ORDER=coordinate \
13 CREATE_INDEX=true \
14 RGID=${i%.*} \
15 RGLB="pe" \
16 RGPU="Hiseq-2000" \
17 RGSM=${i%.*} \
18 RGCN="African rice resequenced" \
19 RGDS=osativa \
20 RGPL=illumina \
21 VALIDATION_STRINGENCY=SILENT 1>${i%.*}.AddOrReplaceReadGroups.log 2>&1 &
22 done

这是一个批量处理sam2bam的脚本,可以遍历work_dir中的所有符合正则表达式

*sam

的文件名,可以解决重复机械的命令输入。最后注意log文件一定要加上,这是nohup的特性,nohup会在后面的博文中找资料做详细解释。

用这种方法就可以批量处理文件名格式类似的文件。

另外我发现他的遍历是字符顺序而不是数字顺序。

这也是我第一篇博文,撒花!!!!!!!!!!




转载于:https://www.cnblogs.com/muuyouzhi/p/8867648.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值