我有一個問題。我使用bash和AWK驗證碼:打印awk爲空行
#!/bin/bash
awk 'BEGIN {print "CHR\tSTART\tSTOP\tPOCET_READU\tGCcontent"}'
for z in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
do
export $z
for i in {0..249480000..60000}
do
u=$i
let "u +=60000"
export $i
export $u
samtools view /home/filip/Desktop/AMrtin\ Hynek/highThan89MapQ.bam chr$z:$i-$u | awk '{ n=length($10); print gsub(/[GCCgcs]/,"",$10)/n;}'| awk -v chr="chr"$z -v min=$i -v max=$u '{s+=$1}END{print chr,"\t",min,"\t",max,"\t",NR,"\t",s/NR}}'
done
done
從此我得到這樣的結果:
CHR1 60000 120000 30 0.333
CHR3 540000 600000 10 0.555
循環的步驟是60000,但如果我劃分s/NR,有時候NR是0,並且此行不在輸出中。感謝我婉得到,如果NR = 0和S/NR不存在(因爲我們不能除以0):
CHR 1 0 60000 N/AN/A
CHR1 60000 120000 30 0.333
CHR 3 480000 540000 N/AN/A
CHR 3 540000 600000 10 0.555
我試圖使用條件等
{s+=$1}END{print chr,"\t",min,"\t",max,"\t",NR,"\t",s/NR; if (S/NR == "") print chr,"\t",min,"\t",max,"\t","N/A","\t","N/A"}'
但它不工作。 你能幫我嗎?
我收到在終端這句法:./name_of_my_script.sh:第20行:出口:'1380000' :不是一個有效的標識符 – Vonton
它應該是'出口z',不'$出口z'。但爲什麼你需要導出變量呢?您沒有任何可以訪問環境變量的子進程。 – Barmar
如果我不把它從bash導出到awk,我不能在awk中打印它。如果我改變它,我得到相同的結果沒有NR == 0 – Vonton