Intereting Posts
Возможно ли поддерживать несколько процессов без поддержки виртуальной памяти? Виртуальный терминал переключился при подключении USB-мыши к Linux Копирование больших файлов – создает ли пустым файл в пункте назначения? как сравнить ввод времени выполнения с текстовым файлом В какой ситуации tarball (.tgz) будет почти того же размера, что и оригинал Объединение определенных строк текста перед их модификацией Создание временного файла vs подстановка процесса и расширение переменной? Как восстановить пакеты, удаленные установкой программы Ошибка копирования в KDE Почему пространство массива Raid 5 не равно сумме дисков? служебная команда не работает в centos 7 Как узнать логическое имя интерфейса tap0? Arch Linux не может подключиться к серверу x Нет разрешения на создание подкаталога, когда пользователь принадлежит группе каталогов Как обрабатывать аудиовход, обрабатывать и перенаправлять аудиовыход

Разница печати столбца1, если значения столбца2 одинаковы

У меня есть файл примерно так:

19:32:19 4599544 19:32:22 4599544 19:33:07 4599545 19:33:11 4599545 19:33:58 4599546 19:34:01 4599546 

1-й столбец – время (чч: мм: сс). Если значения второго столбца одинаковы. Мне нужно распечатать разницу значений столбца 1. то есть мне нужно вывести что-то вроде этого:

 3 4599544 4 4599545 3 4599546 

 awk ' function to_seconds(hms, t) { split(hms, t, /:/) return (t[1]*3600 + t[2]*60 + t[3]) } $2 in times {print to_seconds($1) - times[$2], $2} {times[$2] = to_seconds($1)} ' << DATA 19:32:19 4599544 19:32:22 4599544 19:33:07 4599545 19:33:11 4599545 19:33:58 4599546 19:34:01 4599546 DATA 
 3 4599544 4 4599545 3 4599546