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

  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中的所有符合正则表达式

  1. *sam

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

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

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

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

  1.  

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

  1. shell脚本安装python、pip-----非交互式的--批量执行函数

    首先把pip-.tgz 安装包放在 /usr/local 下面,按照顺序先安装pip,再安装python.不要先安装或只安装python,否则很容易出错, cat >>pip-python ...

  2. SQL Server 中执行Shell脚本计算本地文件的内容大小

    SQL Server 数据库中除了能执行基本的SQL语句外,也可以执行Shell脚本.默认安装后,SQL中的Shell脚本的功能是关闭的,需要手动打开, 执行以下脚本即可打开该功能. -- 允许配置高 ...

  3. Mac下通过shell脚本修改properties文件

    通过shell脚本替换属性文件中的某行记录 假设有如下属性文件 demo.properties user.name=test user.password=123456 ................ ...

  4. Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值

    本文为博主原创,转载请注明出处: 最近在进行压测,为了观察并定位服务性能的瓶颈,所以在代码中很多地方加了执行耗时的日志,但这种方式只能观察,却在压测的时候,不太能准确的把握代码中某些方法的性能,所以想 ...

  5. Shell按行读取文件的3种方法

    Shell按行读取文件的方法有很多,常见的三种方法如下: 要读取的文件: [root@mini05 -]# cat file.info 写法一: [root@mini05 -]# cat read1. ...

  6. shell脚本实现查找文件夹下重复的文件,并提供删除功能

    Windows下有软件FindDupFile,可以搜索指定目录及其下子目录,列出所有内容完全相同的文件(文件名可能不同),然后由用户选择删除重复的文件. 然而shell脚本却可以使用几行的命令完成与此 ...

  7. 通过Shell脚本读取properties文件中的参数时遇到\r换行符的问题

    今天在编写微服务程序启动脚本的时候,遇到一个比较奇葩的问题,下面给出具体描述: 目标:通过读取maven插件打包时生成的pom.properties文件,获取里面的应用名称和应用版本号,然后拼接得到s ...

  8. [shell]用shell脚本将本地文件夹与ftp上的文件夹同步

    需求说明 最近在AIX上做开发,开发机器在office网段,测试机器在lab网段,不能互相通讯,只能通过特定的ftp来传文件. 每次上传的机器都要做:登录ftp,进入我的目录,上传:下载的机器都要做: ...

  9. shell脚本生成xml文件

    今天把这段时间学习完shell后完成工作上的一个小案件整理了一下,分享给大家! 说来也巧了,作为一个刚刚毕业半年的菜鸟,进入公司后,听公司的大牛推荐学习linux--”鸟哥的私房菜“,基本上是从去年8 ...

随机推荐

  1. 工具篇-Mac上搭建本地svn服务器以及使用Cornerstone进行本地版本控制

    1.在桌面上见一个文件夹命名为svn,然后打开终端: 创建一个mycode仓库:svnadmin create /Users/gaoyizhen736(自己的mac的用户名)/Desktop/svn/ ...

  2. 字符串转 多行 ,判断给定一组id ,查库中不存在用

    SELECT REGEXP_SUBSTR('17,20,23', '[^,]+', 1, LEVEL, 'i') AS STR     FROM DUAL   CONNECT BY LEVEL < ...

  3. awesome vue

    https://blog.csdn.net/caijunfen/article/details/78216868

  4. Angular知识点

    Angular CLI 快速创建Angular 2项目和组件, 压缩打包发布. 7.创建包含html.ts.css文件的命令cd到需要创建文件的目录下面,输入如下命令 ng g c myFile 会自 ...

  5. PHP获取访客ip、系统、浏览器等信息[转]

    1.获取访客操作系统信息   <?php   function GetOs() {   if (!empty($_SERVER['HTTP_USER_AGENT'])) {   $OS = $_ ...

  6. ASP.NET 预编译命令(解决发布后第一次访问慢问题)

    ASP.NET 编译工具 (Aspnet_compiler.exe) 官方说明 新建bat文件   @echo off   CD /d C:\Windows\Microsoft.NET\Framewo ...

  7. numpy.loadtxt用法

    numpy.loadtxt(fname, dtype=, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None ...

  8. jmeter 发送加密请求 beanshell断言 线程组间传递参数

    原文地址https://www.cnblogs.com/wnfindbug/p/5817038.html 最近在做http加密接口,请求头的uid参数及body的请求json参数都经过加密再发送请求, ...

  9. iOS 崩溃分析

    崩溃统计分析,在APP中是非常常见一种优化APP,发现APP的BUG的方式. 1.异常处理 可通过try catch 方式处理,如果发生异常,会走catch ,最终走fianlly.对一些我们不想他崩 ...

  10. Cocos Creator scrollview添加事件的两种方法

    scrollview添加事件 方法一这种方法添加的事件回调和使用编辑器添加的事件回调是一样的,通过代码添加, 你需要首先构造一个 cc.Component.EventHandler 对象,然后设置好对 ...