簡體   English   中英

在列之間減去並用AWK打印

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM