【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會在后面的博文中找資料做詳細解釋。

用這種方法就可以批量處理文件名格式類似的文件。

另外我發現他的遍歷是字符順序而不是數字順序。

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





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM