我有一个包含三个部分的大文件。它的一部分只有 3 列,然后它移动到图像部分,它有 5 列,然后是有 7 列的旋转部分(我只想更改旋转部分)。
我试图让 awk
生成一个文件,将所有负值更改为 0
并将所有大于 0.2
的正数更改为 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
最佳答案
这样就可以了:
awk 'NF==7&&/ROTATION/{if($7<0||$7>0.2)$7=0}1' file
关于awk - 使用 awk 查找大于或等于 0.021 到 0 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15211751/