如果超过数字 1,则重写列的值以获得上一行的值

如果超过数字 1,则重写列的值以获得上一行的值

我有一个包含以下数字列表的文件:

0.1131492
0.1231466
0.1327564
0.1017683
5.4356130
0.1360532
5.4258129
0.1433982
0.1124752
.
.
.

如果一行包含大于 1.0000 的值,我想重写此数字列表,然后获取上一行的数字/值,例如:

0.1131492
0.1231466
0.1327564
0.1017683
0.1017683
0.1360532
0.1360532
0.1433982
0.1124752
.
.
.

答案1

awk '$0>1 { $0=NR==1?0.1:prev }{ prev=$0; print }' file

如果当前行大于10.1则将行号分配给当前行1,否则分配给前一个值。然后将当前行分配给prev变量并打印当前行。

相关内容