열 1의 누락된 값을 찾은 다음 해당 값을 추가하고 열 2를 0에 할당합니다.

열 1의 누락된 값을 찾은 다음 해당 값을 추가하고 열 2를 0에 할당합니다.

다음 데이터가 포함된 파일이 있습니다.

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

원하는 경우 이 내용을 한 줄로 압축할 수 있지만 이 방법이 더 읽기 쉽습니다.

관련 정보