Tengo un registro de acceso al servidor, con marcas de tiempo de cada solicitud http, me gustaría obtener un recuento del número de solicitudes en cada segundo. El uso de sed
, y cut -c
, hasta ahora he logrado cortar el archivo reducido a sólo las marcas de tiempo, tales como:Contar el número de apariciones de token en un archivo
22-Sep-2008 20:00:21 +0000
22-Sep-2008 20:00:22 +0000
22-Sep-2008 20:00:22 +0000
22-Sep-2008 20:00:22 +0000
22-Sep-2008 20:00:24 +0000
22-sep-2008 20:00:24 +0000
Lo que me encantaría es el n La mayoría de las veces, cada marca de tiempo única aparece en el archivo. Por ejemplo, con el ejemplo anterior, me gustaría obtener una salida que se parece a:
22-Sep-2008 20:00:21 +0000: 1
22-Sep-2008 20:00: 22 0000: 3
22-Sep-2008 20:00:24 +0000: 2
he usado sort -u
para filtrar la lista de marcas de tiempo a una lista de tokens únicos, con la esperanza de que pudiera use grep como
grep -c -f <file containing patterns> <file>
pero esto solo produce una sola línea de un gran total de líneas coincidentes.
Sé que esto se puede hacer en una sola línea, conectando algunas utilidades juntas ... pero no puedo pensar en cuál. ¿Nadie sabe?
Tenga en cuenta que con otros conjuntos de datos es posible que tenga que ordenar (1) antes de uniq (1), como uniq solo grupo adj acent duplicados. –
Sí, pero el OP ya dijo que había ordenado las cosas, así que supuse que estaba al tanto de ese tipo de cosas ... –
Tuve que usar 'uniq -c' en OS X,' --count' me dio un error. –