С awk:
awk '{ a[$2]+=$1 } END{ for(i in a) print a[i],i }' file
Вывод:
434 teste 470 teste/teste1/teste2 202 teste/teste1
Con awk
puedes hacer como:
awk -F"[-,)]" '$(NF-1)-$5 >2000' infile
2017-01-27 object2(sendtime-1486743904800,recdtime- 1486743908000)
Aquí definimos conjuntos de guión, espacio, coma y paréntesis de cierre como separadores de campos.
para responder a la pregunta revisada, intente:
awk -F"[-,]" '/sendobject/ && $18-$15 >2000' infile
Una variante de la respuesta de @αғsнιη:
awk -F'(sen|rec)dtime-' 'NF==3 && $3 - $2 > 2000'
O, si los registros contienen todo tipo de líneas además de estas, podría ser aún más restrictivo al hacer coincidir la entrada conperl
:
perl -ne 'print if m{
^\d{4}-\d\d-\d\d\s+
object\d+\(
sendtime-(\d+)\s*,
recdtime-\s*(\d+)
\)$}x && $2 - $1 > 2000'