我有以下输入数据:
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
答案 0 :(得分:4)
因为你只打印了一次差异,最后,这意味着除最后一行之外的所有内容都被有效地丢弃了。 (当{em>整个输入已被读取和处理时)END
块仅运行一次。您想要这样:
awk 'NF > 0 { print $1 "\t" ($3 - $2) }' input.txt
NF > 0
阻止awk为空行打印无意义的0。