숫자 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

행 번호가 더 크면 현재 행에 할당되고 1, 그렇지 않으면 이전 값에 할당됩니다. 그런 다음 현재 줄을 변수에 할당하고 현재 줄을 인쇄합니다.0.11prev

관련 정보