处理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
一下。
网友评论