2

我有一个包含三个部分的大文件。它的一部分只有 3 列,然后它移动到图像部分,它有 5 列,然后是有 7 列的旋转部分(我只对更改旋转部分感兴趣)。我正在尝试awk生成一个将所有负值更改为0并且所有正数大于0.2to的文件0。我关心的值仅在第 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

4

1 回答 1

2

这将做到:

awk 'NF==7&&/ROTATION/{if($7<0||$7>0.2)$7=0}1' file
于 2013-03-04T21:50:37.270 回答