【发布时间】:2016-10-17 19:23:58
【问题描述】:
我正在尝试执行以下 awk 命令
awk '{ if($3-$2 >= 1000) print $1"\t"$3-1000"\t"$3"\t"$4"\t"$5 ; else if($3-$2 < 1000) print $1"\t"$3-($3-$2/2)"\t"$3"\t"$4"\t"$5 }'file
如果第 3 列和第 2 列之间的减法 > 1000 则遵循某个条件,否则遵循另一个条件,其中第 2 列是 column3-(column3-column2/2) 整数。该文件如下所示:
chrX 99885864 99887481 I7 -
chrX 99887566 99888401 I6 -
chrX 99888537 99888927 I5 -
chrX 99889027 99890174 I4 -
chrX 99890250 99890554 I3 -
chrX 99890744 99891187 I2 -
chrX 99892102 99894941 I1 -
chr20 49552800 49557401 I8 -
chr20 49557493 49557641 I7 -
chr20 49557747 49558567 I6 -
【问题讨论】:
-
你遇到了什么错误?
-
我得到类似:chrX 4.99443e+07 99888927 I5 或 chr20 2.47787e+07 49557641 I7 而不是整数
-
检查this post。看起来你不想要
print默认为的科学记数法
标签: awk calculated-columns subtraction