Intereting Posts
что делает mount -o remount, ro / на самом деле (под капотом) Ошибка: не удается найти действительный baseurl для репо: rpmfusion-free отображать строки, содержащие не более 4 слов во втором столбце Я не могу получить доступ к своему USB-устройству после команды mkfs.ntfs Исключить все строки с конкретными строчными символами в текстовом файле unix Как показать изменения для пакетов перед обновлением через apper или apt-get upgrade? Можно ли установить среду рабочего стола linux из live cd? Как отключить модуль гибких дисков от загрузки при загрузке в CentOs7? Добавить <script> в нижней части html-файла? Почему эти соединения не классифицируются как «установленные» под conntrack? Как спасти нечитаемый флэш-накопитель USB Столбец печати, если значения находятся между двумя другими значениями Почему моя «дата» не может обрабатывать временные интервалы? Окна быстрого переключения Eclipse не имеют фокуса, не работают без перемещения мыши Как изменить имя пользователя в Ubuntu 10.10?

Разница печати столбца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