减去两个数字列

时间:2015-02-10 22:45:10

标签: linux awk

我需要从三个中减去第二列。因此,我在Linux服务器awk '$3 - $2' in.bed >out.bed上运行以下代码,生成的输出文件与输入文件相同。我无法理解为什么这个命令不起作用!有人可以帮忙吗?

in.bed是:

chr19   2255482 2259550
chr19   2270962 2272924
chr19   2326618 2327833
chr19   2329714 2333233

1 个答案:

答案 0 :(得分:4)

您放置它的方式,$3 - $2被解析为条件:选择并打印$3 - $2不为零的那些行(因为打印行不变是默认操作)。

你可以这样做你想做的事:

awk '{ print $3 - $2 }' in.bed > out.bed

{}表示其中包含的内容是一个操作,并且由于没有附加条件,{ print $3 - $2 }将无条件地执行所有行。