다음 데이터가 포함된 파일이 있습니다.
21599.94 -13006.00
21599.95 -13008.00
21599.96 -13016.00
21599.97 -13001.00
21599.98 -13015.00
21599.99 -13021.00
25200.00 -13285.00
25200.01 -13295.00
25200.02 -13275.00
25200.03 -13262.00
25200.04 -13278.00
25200.05 -13277.00
21600.00
(열 1) 에서 까지의 데이터가 25199.99
누락되었습니다. 열 1의 모든 값이 누락되었음을 인식한 다음(샘플링 레이트는 0.01임) 해당 값을 파일에 추가하고 열 2의 해당 값을 0으로 할당하는 코드가 필요합니다.
원하는 출력:
21600.00 0
21600.01 0
21600.02 0
21600.03 0
...
....
.....
25199.98 0
25199.99 0
25200.00 -13285.00
답변1
나는 일반적으로 명백한 시도가 없을 때 코드 답변을 제공하지 않습니다. 하지만 오늘은 좋은 날입니다. 여기에 제 조언이 있습니다.
awk '
{
this = int($1*100 + .5) # Counter is integer
}
NR == 1 {
current = this # Starting value
}
{
while(current < this) {
printf "%.2f\t0\n", current/100; # Output the missing entry
current++ # Next increment
}
print; # Output current line
current++ # Keep in step with expected
}
' datafile
원하는 경우 이 내용을 한 줄로 압축할 수 있지만 이 방법이 더 읽기 쉽습니다.