我正在使用bash
一个接一个地运行多个进程。我想创建一个每个进程的日志,一个进程启动和完成的日志,但下面只创建并清空log
。谢谢你:)。
因此,当第一个进程(# create BAM Index
)运行时,会创建一个日志,其中包含启动和完成的时间。
每个进程可能有多个文件,但每个进程只需要1
个日志。
运行第二个进程(# strip off @PG tags
)时,将创建一个日志,其中包含启动和完成的时间。谢谢你:)。
的bash
# create BAM Index
logfile=/home/cmccabe/Desktop/NGS/API/2-12-2015/log.log
for f in /home/cmccabe/Desktop/NGS/API/2-12-2015/*.bam ; do
bname=`basename $f`
pref=${bname%%.bam}
samtools index $f
done > "$logfile"
# strip off @PG tags
logfile=/home/cmccabe/Desktop/NGS/API/2-12-2015/log.log
for f in /home/cmccabe/Desktop/NGS/API/2-12-2015/*.bam ; do
bname=`basename $f`
pref=${bname%%.bam}
samtools view -H $f | sed '/^@PG/d' | samtools reheader - $f > /home/cmccabe/Desktop/NGS/API/2-12-2015/${pref}_newheader.bam
done > "$logfile"
答案 0 :(得分:3)
正如我在评论中提到的那样:
我不建议您在将用于生成所述输出的循环中定义输出日志文件。
第二个从循环输出数据我会在循环结束时管道数据:done > "$logfile"
我按照下面的方式运行你的脚本,但它实际上并没有输出任何内容。
logfile=log.log
# create BAM Index
for f in *.bam ; do
bname=`basename $f`
pref=${bname%%.bam}
samtools index $f
done > "$logfile"
# strip off @PG tags
for f in *.bam ; do
bname=`basename $f`
pref=${bname%%.bam}
samtools view -H $f | sed '/^@PG/d' | samtools reheader - $f > ${pref}_newheader.bam
done > "$logfile"
如果你想实现这一点,可以添加一行来回显流程的开始和结束,如下所示。另请注意,在第二个循环中,输出通过语法>>
附加到日志中,否则您将使用>
覆盖日志
logfile=log.log
# create BAM Index
for f in *.bam ; do
echo "Start Index creation: $(date) - File: $f"
bname=$(basename $f)
pref=${bname%%.bam}
samtools index $f
echo "End Index creation: $(date) - File: $f"
done > "$logfile"
# strip off @PG tags
for f in *.bam ; do
echo "Start @PG tag strip creation: $(date) - File: $f"
bname=$(basename $f)
pref=${bname%%.bam}
samtools view -H $f | sed '/^@PG/d' | samtools reheader - $f > ${pref}_newheader.bam
echo "End @PG tag strip creation: $(date) - File: $f"
done >> "$logfile"
日志文件看起来像:
Start Index creation: Sat Feb 20 09:58:46 EST 2016 - File: wgEncodeUwRepliSeqBjG1bAlnRep1.bam
End Index creation: Sat Feb 20 09:58:47 EST 2016 - File: wgEncodeUwRepliSeqBjG1bAlnRep1.bam
Start @PG tag strip creation: Sat Feb 20 09:58:47 EST 2016 - File: wgEncodeUwRepliSeqBjG1bAlnRep1.bam
End @PG tag strip creation: Sat Feb 20 09:58:47 EST 2016 - File: wgEncodeUwRepliSeqBjG1bAlnRep1.bam