awk: 2개의 타임스탬프 열을 추출하고 차이점을 비교합니다.

awk: 2개의 타임스탬프 열을 추출하고 차이점을 비교합니다.

100개의 열이 있는 쉼표로 구분된 파일이 있고 다음 명령을 사용하여 열 값을 기준으로 결과를 필터링하고 있습니다.

find . | xargs zgrep -i , |  awk '{ FS = "," };{ if (( $3 == "8") && ($14=="1") ) {print $10""$8}}'

결과 열 10과 8의 일부로 다음 결과가 반환됩니다. 이는 기본적으로 밀리초 타임스탬프입니다. yyyymmddhhmmssmmm(+0900은 JST이며 항상 동일하게 유지됩니다. mmm은 밀리초의 3자리를 나타냅니다.)

20200428030351464+0900 -> column 10
20200428030351329+0900 -> column 8

이제 같은 줄에 차이점을 인쇄할 수 있는 방법이 있습니까? 거의 모든 경우에 차이는 분이 아니라 초와 밀리초 단위입니다. (이것이 단순화될 수 있다면.

답변1

내 코드는 다음과 같아야 한다고 생각합니다.

find . | xargs zgrep -i , |
   awk 'BEGIN { FS="," }
        $3 == 8 && $14 == 1 {
            f10=substr($10,13,5);
            f8=substr($8,13,5);
            diff=f10-f8;
            if (diff < 0) { diff+=60000 }
            print diff
}'

차이를 밀리초 단위로 인쇄하지만 데이터 파일이 없기 때문에 테스트되지 않았습니다.

관련 정보