美文网首页
格式化输出:用命令行将多个bam或者sam文件打印成一行,各文件

格式化输出:用命令行将多个bam或者sam文件打印成一行,各文件

作者: 学生信的大叔 | 来源:发表于2021-10-16 01:26 被阅读0次

    处理sam或bam文件时有时会要求多个文件写为一行,按“,”分割。之前都是一个文件一个文件写的。这次尝试用命令行写了下。

    $ var=$(find ~/trinity/ -name *.sort.bam | sort | while read file; do printf "%s," $file; done | sed 's/.$//')
    $ echo $var
    /home/username/trinity/3.bowtie2/bamsort/A1.sort.bam,/home/username/trinity/3.bowtie2/bamsort/A2.sort.bam,/home/dusername/trinity/3.bowtie2/bamsort/A3.sort.bam 
    
    • 如果不赋值尤其是将命令写入脚本的话,需要注意最后的换行问题。在最后加个;echo换行。
    find ~/trinity/ -name *.sort.bam | while read file; do printf "%s," $file; done | sed 's/.$//';echo
    
    • find命令找出的文件不是以ASC II 码排序,咨询后说可能是文件创建时间排序,偶尔也不是。所以,对顺序有要求时注意sort 一下。

    参考:https://www.runoob.com/linux/linux-shell-printf.html

    相关文章

      网友评论

          本文标题:格式化输出:用命令行将多个bam或者sam文件打印成一行,各文件

          本文链接:https://www.haomeiwen.com/subject/ttpmoltx.html