使用awk查找大于或等于0.021到0的值

时间:2013-03-04 21:46:39

标签: awk

我有一个包含三个部分的大文件。它的一部分只有3列,然后它移动到图像部分,它有5列,然后旋转部分有7列(我只对改变旋转部分感兴趣)。 我正在尝试让awk生成一个文件,将所有负值更改为0,将所有正数更改为0.20。 我所关注的值仅在第7列中,并且必须位于包含单词ROTATION的行中。

这是我的尝试。

awk BEGIN '/ROTATION/ {if (function abs($7) > = 0.021) $7=0; print}' awktest.tlt > awktest1.tlt

我需要awk来保留其余的数据,而不仅仅是产生从X到0的变化。

就执行它而言,我正在使用awk -f fix.awk awktest.tlt

1 个答案:

答案 0 :(得分:2)

这样做:

awk 'NF==7&&/ROTATION/{if($7<0||$7>0.2)$7=0}1' file