我希望在awk的每一行上打印$ fname以获取以下内容:
for fname in $(ls *.bam | cut -c -9 | uniq)
do
echo $fname
samtools depth -a "$fname".bam | awk '{sum+=$3} END {print "Average = ", sum/NR}' >> mean.depth
done
当前输出:
$ less mean.depth
Average = 5.40089
Average = 4.68387
期望的输出:
$ less mean.depth
FILENAME1 Average = 5.40089
FILENAME2 Average = 4.68387
这样输出平均深度是可追踪的。我已经尝试了FILENAME和各种各样的事情,但没有取得成功。谢谢!
答案 0 :(得分:0)
解
改编自this answer
使用awk -v var=
定义shell变量$ fname,然后使用END {print var
samtools depth -a "$fname".bam | awk -v var=$fname '{sum+=$3} END {print var, " = ", sum/NR}' >> mean.depth