Introducción
En entornos Linux, cuando necesitas extraer rápidamente solo las columnas deseadas de archivos de registro (logs) masivos o datos CSV, el comando cut es la herramienta más ligera y potente. En esta guía exploramos técnicas fundamentales listas para usar en producción, desde la separación de campos mediante delimitadores hasta el corte por bytes y caracteres en formatos de ancho fijo.
Extracción de datos CSV y de cuentas del sistema mediante delimitador (-d) y campos (-f)
Para crear un directorio exclusivo destinado a las prácticas del comando cut y situarte en él, ejecuta el comando mkdir -p ~/cut_demo && cd ~/cut_demo.

Crea un archivo de datos de usuario de prueba delimitado por comas (,) escribiendo el archivo users.csv con el comando echo.

El comando cut es una herramienta para extraer columnas (campos) específicos o secciones basadas en bytes o caracteres de un archivo de texto o de la salida de un comando según un delimitador determinado.
Usa la opción -d para especificar la coma (,) como delimitador y la opción -f para seleccionar el segundo y cuarto campo, obteniendo de forma limpia solo el nombre y el departamento del archivo users.csv.
⚙️ [Opciones principales]
-d : Especifica el delimitador que se usará para separar campos (por defecto es un tabulador).-f : Indica el número o rango de campos (columnas) que se extraerán.-c : Corta los datos tomando como referencia posiciones por caracteres en lugar de bytes.-b : Corta los datos tomando como referencia posiciones por bytes.--complement : Invierte la selección y muestra únicamente las partes restantes, excluyendo los campos o caracteres especificados.-s : Excluye de la salida las líneas que no contengan el delimitador.--output-delimiter : Cambia la cadena delimitadora de campos utilizada al mostrar el resultado por el texto deseado.

A partir del archivo /etc/passwd, que contiene la información de cuentas del sistema Linux, extrae únicamente el nombre de usuario (campo 1) y la ruta de la shell predeterminada (campo 7) tomando como delimitador los dos puntos (:), y luego usa el comando head para verificar las primeras 5 líneas.
Al combinar el comando cut con tuberías (|), puedes supervisar fácilmente solo las columnas esenciales que necesitas de extensos archivos de configuración del sistema.

Gestión de logs de ancho fijo mediante corte por bytes (-b) y caracteres (-c)
Para continuar con la práctica, ejecuta el comando cd ~/cut_demo y muévete al directorio de trabajo creado anteriormente.

Para poner en práctica el corte por caracteres de ancho fijo, crea un archivo de registro de muestra service.log donde la fecha, la hora y el nivel de log se registran en un formato constante.
![echo -e ‘2026-10-07 14:00:01 [INFO] Service started\n2026-10-07 14:00:05 [WARN] High memory usage\n2026-10-07 14:00:12 [ERROR] Connection timed out’ > service.log](/ubuntu/20261007_145511_102/captures/s02_c02_echo_-e__2026-10-07_14_00_01__INFO__Service_starte.png)
Aplica la opción -c1-10 al comando cut para cortar desde el carácter 1 hasta el carácter 10 de cada línea, extrayendo de forma limpia únicamente la fecha con formato año-mes-día.

Utiliza la opción -c12-19 para aislar y mostrar con precisión solo la marca de tiempo (hora:minuto:segundo) ubicada entre los caracteres 12 y 19 del archivo de log.

Si omites la posición final como en -c22-, puedes cortar todo el texto restante desde el carácter 22 hasta el final de cada línea en una sola operación, extrayendo el mensaje del log.

Cambio del delimitador de salida (–output-delimiter) y exclusión de campos seleccionados (–complement)
Ejecuta el comando cd ~/cut_demo para situarte en el directorio donde residen los archivos de práctica creados anteriormente.

La opción --output-delimiter te permite definir una cadena de texto personalizada para separar los campos extraídos en la salida en lugar del delimitador por defecto.
Extrae los campos 2 y 3 del archivo users.csv separado por comas (,) e inserta un espacio y una barra vertical (|) entre ellos para mejorar la legibilidad.

Si especificas la opción --complement, se invertirá la selección para mostrar todas las columnas excepto las indicadas.
Utilízala junto con -f3 para omitir únicamente el tercer campo (el rol) y conservar el resto intacto en la salida.

Flujo práctico en producción: análisis estadístico de IP de conexión combinando cut, sort y uniq
Para continuar con el ejercicio, ejecuta cd ~/cut_demo y accede al directorio de trabajo asignado.

Para simular el análisis de solicitudes de clientes a un servidor web, crea un archivo de registro de muestra access.log que contenga las IP de conexión y las peticiones HTTP separadas por espacios.
![echo -e ‘192.168.1.10 - - [07/Oct/2026] “GET /index.html” 200\n192.168.1.15 - - [07/Oct/2026] “POST /login” 401\n192.168.1.10 - - [07/Oct/2026] “GET /dashboard” 200\n10.0.0.5 - - [07/Oct/2026] “GET /api/v1” 200\n192.168.1.10 - - [07/Oct/2026] “POST /logout” 200’ > access.log](/ubuntu/20261007_145511_102/captures/s04_c02_echo_-e__192_168_1_10_-_-__07_Oct_2026___GET__inde.png)
Con la opción -d' ' -f1 del comando cut, aísla la primera columna basada en espacios, que corresponde a las direcciones IP de los clientes.
A continuación, ordena los datos con sort, cuenta las ocurrencias con uniq -c y enlaza nuevamente con sort -nr para obtener una clasificación estadística ordenada descendentemente por frecuencia de conexión.

Hasta aquí hemos visto cómo utilizar el comando cut para extraer de manera rápida y limpia exactamente las columnas que necesitas de logs y datos CSV.
Aprovecha adecuadamente las opciones de delimitador y campos para agilizar tus tareas habituales de procesamiento y transformación de texto.