ElasticSearchにデータをロードしてから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桁に丸める方法は? 4桁目を基準に丸めたいです。 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
新しい行を印刷します。