使用 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
我有一列数据保存在文本文件中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