[英]Substract between columns and print it with AWK
我有以下輸入數據:
AATGCCACGTTGAGAGGCGTTCGCGGAAGGCGCG 44 40.000
AATGCCACTCGGGTCCGAGATGGCGGATCTCCAC 35 37.000
AATGCCAGAGCTGTGGTAGTGTGAAAGCAGCAGT 13 13.000
我想做的是將第2列減去第3列,得出:
AATGCCACGTTGAGAGGCGTTCGCGGAAGGCGCG -4
AATGCCACTCGGGTCCGAGATGGCGGATCTCCAC 2
AATGCCAGAGCTGTGGTAGTGTGAAAGCAGCAGT 0
但是為什么這個awk不起作用:
$ awk '{dif =($3 - $2)}END{print dif}' input.txt
因為最后只打印一次差異,這意味着除最后一行外的所有內容都將被有效丟棄。 (在讀取並處理了整個輸入后, END
塊僅運行一次)您需要這樣做:
awk 'NF > 0 { print $1 "\t" ($3 - $2) }' input.txt
NF > 0
可防止awk為空行打印無意義的0。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.