使用 awk 打印落在值范围内的值

printing values that falls in the range of values using awk

我有一列数据保存在文本文件中data.txt,首先我想打印该列的极小值和极最大值然后

案例 1:我想打印介于 -0.001 到 +0.001 范围内的值。 在这种情况下

    input
    0.5
   -0.5
    0.001
   -0.001

产出

 0.001
-0.001

案例 2:我想将值调整到 -0.008 到 +0.008 的范围内 在这种情况下,相同输入的输出应如下所示

    0.005
   -0.005
    0.001
   -0.001

我试过下面的oneliner,

awk '{print  > -0.001 &&  < 0.001; print [=13=]}' data.txt 

它打印了一些值,但我不确定它是否正确things.I希望专家会提前me.Thanks。

您可以在命令行上设置一个基础并像这样使用它:

awk -v base='0.001' 'NR>1 &&  >= (-1 * base) &&  <= base' file
0.001
-0.001

awk -v base='0.008' 'NR>1 &&  >= (-1 * base) &&  <= base' file
0.005
-0.005
0.001
-0.001

其中输入文件是:

cat file
input
0.005
-0.005
0.001
-0.001