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.