nohup引发的血案

今天用BWA处理一个重测序数据,用了下面这条命令

1
nohup bwa mem -t 8 ~/zjf/ara11/TAIR10_Chr.all.fasta BN4-218_HW3TLCCXX_L3_1.clean.fq BN4-218_HW3TLCCXX_L3_2.clean.fq > me_pe.sam &

原本担心终端掉线导致运行终止,所以用上了nohup命令。没有想到的是末尾的>符号是个大大的陷阱!这会把运行过程中的log信息都写到输出文件里。这个大于号本身不是给nohup用的,而是bwa的一部分!这就是偷懒copy-paste别人命令的悲剧。最后的结果就是,生成的sam文件(30多G)里到处都是log的碎片字串。用samtools调试了一下午才终于意识到这个问题,我是有多愚蠢。。可悲的是一开始居然花费大量时间企图把这些‘刺’都拔掉,直到我发现不仅仅是文件的开头有这些log信息。不过这个过程也google到了一个有用的技巧

1
$ tail -n +{x} file > newfile

用它删掉文件的前x-1行确实比sed命令要快。