#!/bin/bash csv=$(mktemp) asleep=0 sort input.txt | while IFS='[]-:# ' read -r dummy year month day hour minute w1 w2 w3 do let asleep && echo $year-$month-$day,$prev,$minute,$id case $w1 in 'Guard') asleep=0 id=$w2 ;; 'falls') asleep=1 ;; 'wakes') asleep=0 ;; esac prev=$minute done >$csv sqlite3 <= start and minute < finish; create table safest as select id, minute, count(minute) as safety from opportunities group by id, minute order by safety desc limit 1; select (select id from safest) * (select minute from safest); EOF rm $csv