ElasticSearch에 데이터를 로드한 다음 Kibana에서 시각화하고 있습니다. 그러나 Kibana는 나노초 정밀도를 지원하지 않습니다. 내 파일에는 900,000줄이 포함되어 있으므로 다음을 수행하기 위해 어떻게 반복합니까?
bash에서 이 파일을 전처리하고 싶습니다.
입력 파일 1.csv:
2018-10-1711:54:59.4422378,OUTLOOK.EXE,12052,11316,스레드 분석,스레드 11316,성공,사용자 시간: 0.0000000; 커널 시간: 0.0000000;컨텍스트 스위치: 3,회사\사용자 이름,0
예상 출력 file2.csv:
2018-10-1711:54:59.442. OUTLOOK.EXE, 12052, 11316, 스레드 분석, 스레드 11316, 성공, 사용자 시간: 0.0000000, 커널 시간: 0.0000000, 컨텍스트 스위치: 3, 회사\사용자 이름, 0
날짜를 3자리로 반올림하는 방법은 무엇입니까? 네 번째 자리를 기준으로 반올림하고 싶습니다. 4425000 = 442, 4426000 = 443
답변1
awk -F, 'BEGIN { OFS=FS=","; }
{
seconds=substr($1, index($1, ".")-2, 10);
ms=substr(seconds, 7);
seconds=substr(seconds, 1, 6);
if (ms > 5000)
seconds += 0.001;
$1=sprintf("%s%6.3f", substr($1, 1, index($1, ".") - 2), seconds);
print
}' < input
이는 단순히 첫 번째 매개변수에서 타임스탬프 필드를 강제로 제거한 다음 시간을 반올림해야 하는지 확인합니다. 새 시간 값을 사용하여 타임스탬프 필드를 다시 재조립 $1
하고 새 줄을 인쇄합니다.