У меня есть файл с тремя разными временными метками, как показано ниже.(Я только что поместил здесь две строки. Файл имеет тысячи таких строк.)
blah!blah!20190206 12:59:03:579 PM!blah!20190206 12:59:03:691 PM!blah!20190206 12:59:06:422 PM!blah!blah
blah!blah!20190206 12:59:06:510 PM!blah!20190206 12:59:06:534 PM!blah!20190206 12:59:06:928 PM!blah!blah
Я пытаюсь найти разницу между каждой отметкой времени в каждой строке.
С помощьюниже команды awk,
awk -F! 'BEGIN{OFS="!";} {print $3, $5, $7}' | columnt -t -s "!"
Я могу извлечь метку времени, как показано ниже.
20190206 12:59:03:579 PM 20190206 12:59:03:691 PM 20190206 12:59:06:422 PM
20190206 12:59:06:510 PM 20190206 12:59:06:534 PM 20190206 12:59:06:928 PM
Теперь, во-первых, проблема в том, что эти метки времени не в формате, готовом для передачина команду date.
$ date -d "20190206 12:59:06:510 PM" +%s
date: invalid date '20190206 12:59:06:510 PM'
$ date -d "20190206 12:59:06,510 PM" +%s+%3N
1550080746+510
$
$ date -d "20190206 12:59:06,536 PM" +%s+%3N
1550080746+536
$
$ echo $(( `date -d "20190206 12:59:06,510 PM" +%s+%3N` - `date -d "20190206 12:59:06,536 PM" +%s+%3N` ))
$ 1046
$
Третий двоеточие необходимо заменить на запятую, чтобы передать команде date.
Во-вторых, как получить вывод, как показано ниже, с помощью командыразница между временными метками в каждой строке, напечатанными вместе с временными метками.Итак, я могу просмотреть вывод и найти, какая строка заняла больше времени.
20190206 12:59:03:579 PM 20190206 12:59:03:691 PM 20190206 12:59:06:422 PM
(difference between first and second column) (difference between second and third column)
20190206 12:59:06:510 PM 20190206 12:59:06:534 PM 20190206 12:59:06:928 PM
(difference between first and second column) (difference between second and third column)
20190206 12:59:03:579 PM 20190206 12:59:03:691 PM 20190206 12:59:06:422 PM
112 milliseconds 2731 milliseconds
20190206 12:59:06:510 PM 20190206 12:59:06:534 PM 20190206 12:59:06:928 PM
24 milliseconds 394 milliseconds