24

我的 awk 代码中有一个变量。在对该变量进行一些算术运算并打印 ( print $1,$2,variable) 后,结果如下所示:

我的结果

Bama     2   5    
Bama     2   5.001
Bama     2   5.002
Bama     2   5.003
Bama     2   5.004
Bama     2   6  
Bama     2   6.003
Bama     2   6.004
Bama     2   4.005  

但我只想要变量打印的整数部分

期望的结果

Bama     2   5    
Bama     2   5
Bama     2   5
Bama     2   5
Bama     2   5
Bama     2   6  
Bama     2   6
Bama     2   6
Bama     2   4

我怎样才能做到这一点?

4

2 回答 2

45

int使用以下函数截断它:

print $1, $2, int( variable );
于 2012-10-17T08:19:16.300 回答
1

为了保持完全相同的间距和一切:

awk -F ' ' '{print $1"     "$2"   "int($3)}' data.lst

这个修剪,不圆,所以4.9会变成4

一种肮脏的方法是使用点作为字段分隔符:

awk -F '.' '{print $1}' data.lst

输入:

Bama     2   5
Bama     2   5.001
Bama     2   5.002
Bama     2   5.003
Bama     2   5.004
Bama     2   6
Bama     2   6.003
Bama     2   6.004
Bama     2   4.905

两种情况下的输出:

Bama     2   5
Bama     2   5
Bama     2   5
Bama     2   5
Bama     2   5
Bama     2   6
Bama     2   6
Bama     2   6
Bama     2   4
于 2020-08-16T16:35:57.457 回答