Contar registros en Linux desde el terminal

Supongamos que tenemos un fichero donde se encuentran diferentes direcciones IP’s que se repiten y queremos saber cuantas veces se ha accedido/consultado dicha IP.

Mostramos las diez primeras líneas del fichero para comprobar el formato:

pi@platon:~ $ head fichero.csv
grupo;ip
alumnos;192.168.100.100
administracion;172.16.18.1
wifi;192.168.200.1
administracion;172.16.18.1
wifi;192.168.200.1
wifi;192.168.200.1
alumnos;192.168.100.100
alumnos;192.168.100.100
alumnos;192.168.100.100

Introducimos el siguiente comando para contabilizar los datos:

cat fichero.csv | cut -f 2 -d ";" | sort | uniq -c | sort -nr | head -n5

Este comando realizará las siguientes funciones:

  • Abrir el fichero
  • Cortar por la columna número dos «IP» que está delimitado por «;».
  • Ordenar todos los registros.
  • Obtener un único registro de cada valor y contabilizarlo.
  • Ordenar de nuevo a la inversa y mostrar los cinco primeros registros

Esta combinación de comandos de Linux se puede extrapolar a cualquier otra situación donde queramos contabilizar los registros que se repiten en un fichero. Únicamente habría que ajustar los parámetros del comando «cut» al formato del fichero en cuestión.

Scroll al inicio
WordPress Appliance - Powered by TurnKey Linux