我有一个包含以下数字列表的文件:
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
如果当前行大于1
,0.1
则将行号分配给当前行1
,否则分配给前一个值。然后将当前行分配给prev
变量并打印当前行。