Se for o Overtid:
que você deseja preencher, faça o seguinte:
awk 'function overtime(s,e) {
if (s) printf("Overtid: %d\n", (e - s > 800) ? e - s : 0);
}
/^Mødt ind:/ { start = $NF; print }
/^Gået hjem:/ { end = $NF; print }
/^Dato:/ { overtime(start, end); print }
END { overtime(start, end) }' file
Isso seleciona os horários de início e término dos dados e, para cada linha Dato:
(que significa um novo registro nos dados), imprime o tempo extra para o registro anterior. Isso também é feito no final (o bloco END
).
Eu fiz overtime()
como uma função, já que precisamos fazer a mesma coisa em dois lugares diferentes no script. O if (s)
na função é garantir que não recebemos uma saída Overtid: 0
falsa ao atingir a primeira linha Dato:
nos dados.
As instruções print
no código passam pelos dados existentes para a saída.
Saída com seus dados:
Dato: 22-02-2018
Mødt ind: 700
Gået hjem: 1600
Overtid: 900
Dato: 23-02-2018
Mødt ind: 730
Gået hjem: 1600
Overtid: 870