El comando cut es una utilidad de línea de comandos que extrae secciones específicas de un archivo o datos canalizados y muestra el resultado en la salida estándar. El comando corta partes de una línea basándose en campos, delimitadores, posiciones de bytes y posiciones de caracteres.
En este tutorial, aprenderás qué es el comando cut y cómo usarlo.
- Sintaxis del comando cut
- Opciones del comando cut
- Ejemplos del comando cut de Linux
- cut de Linux con selección de campo
- Opciones de delimitador del comando cut de Linux
- Comando cut de Linux: Opciones adicionales
- Combinando cut con otros comandos
- cut de Linux: Manejo de formatos de datos irregulares
- Invertir el texto (mostrar en espejo)
- Conclusión
Sintaxis del comando cut
El comando cut tiene una sintaxis simple:
cut [opción] [archivo]Especificar una [opción] es necesario. De lo contrario, el comando muestra un error. El argumento [archivo] determina el nombre del archivo que deseas procesar.
Si no proporcionas un nombre de archivo, el comando cut lee datos de la entrada estándar (por ejemplo, entrada de otro comando en una canalización) y los procesa en consecuencia. Si especificas varios nombres de archivo, el comando cut concatena el contenido solicitado.
Nota: Otro comando de Linux que produce salidas formateadas es el comando awk.
Opciones del comando cut
Las opciones del comando cut especifican cómo extraer datos de la entrada definiendo el delimitador y determinando si se debe cortar por posición de byte, campo o carácter.
Las opciones disponibles son:
| Opción | Descripción |
|---|---|
-f (--fields=LISTA) | Especifica qué campos extraer de la entrada basándose en un delimitador. |
-b (--bytes=LISTA) | Indica qué bytes se deben extraer de cada línea de entrada. |
-c (--characters=LISTA) | Especifica qué caracteres se deben extraer de cada línea de entrada. |
-d (--delimiter) | Especifica un delimitador que se utilizará en lugar del delimitador de tabulación predeterminado. |
--complement | Indica a cut que muestre todos los bytes, caracteres o campos excepto los seleccionados. |
-s (--only-delimited) | Indica a cut que no imprima las líneas que no contienen delimitadores. La configuración predeterminada es imprimir las líneas que no contienen caracteres delimitadores. |
--output-delimiter | Permite especificar un delimitador de salida diferente. De forma predeterminada, cut utiliza el delimitador de entrada como delimitador de salida. |
Las opciones -f, -b y -c utilizan el argumento LISTA para seleccionar campos, bytes o caracteres específicos. Proporciona un solo número (N), una lista de números separados por comas o rangos de números.
Un rango como N- significa “de N hasta el final de la línea”, mientras que N-M significa “de N a M”. Un rango como -M selecciona desde el principio hasta M.
Ejemplos del comando cut de Linux
El comando cut tiene muchos usos para procesar y formatear datos.
Para comprender cómo funciona el comando cut, utiliza el comando echo para crear un archivo (ejemplo.csv) y redirige la salida a él. Por ejemplo:
echo -e "nombre,edad,ciudad\nAlicia,30,Bogotá\nBob,25,Ciudad de México\nCarlos,35,Buenos Aires" > ejemplo.csvEl comando no tiene salida, pero crea un archivo ejemplo.csv con el siguiente contenido:
nombre,edad,ciudad
Alicia,30,Bogotá
Bob,25,Ciudad de México
Carlos,35,Buenos AiresConfirma el contenido del archivo con el comando cat:
cat ejemplo.csvA continuación, se muestran los ejemplos de uso más comunes del comando cut.
Nota:
cutsolo funciona en una copia del contenido y no modifica el archivo original. El comando extrae y muestra datos, pero deja el archivo original sin cambios.
cut de Linux con selección de campo
El comando cut en Linux permite a los usuarios extraer campos específicos de archivos de texto o entradas basándose en un delimitador definido. El siguiente texto explica la selección de campos basándose en caracteres, bytes y números de campo.
Selección de campo basada en caracteres
Para cortar por caracteres, especifica la opción -c. La sintaxis es:
cut -c [LISTA] [archivo]El argumento [LISTA] especifica los caracteres que se extraerán de cada línea de [archivo].
Por ejemplo, si deseas extraer el primer y el quinto carácter de cada línea del archivo ejemplo.csv, ejecuta:
cut -c1,5 ejemplo.csvEl comando extrae los caracteres especificados de cada línea del archivo ejemplo.csv y los muestra como salida.
ne
Ai
B2
CoEl comando cut lee datos de la entrada estándar (stdin) si no especificas un archivo. Esto te permite usar cut en combinación con otros comandos en una canalización.
Por ejemplo, usa cut con el comando who:
who | cut -c 1-4En el ejemplo anterior, cut extrae los caracteres del uno al cuatro de cada línea de entrada.

Además, usa cut para extraer múltiples caracteres diferentes de una línea. Por ejemplo, muestra el nombre de usuario y la hora de inicio de sesión de todos los usuarios iniciados sesión:
who | cut -c 1-4,18-
El comando extrae los primeros cuatro caracteres de cada nombre de usuario y las posiciones de caracteres a partir de 18 hasta el final de la línea, lo que te permite ver los nombres de usuario y sus horas de inicio de sesión.
Selección de campo basada en desplazamientos de bytes
La opción -b te permite extraer datos usando bytes. La sintaxis es:
cut -b [LISTA] [archivo]El argumento [LISTA] son los bytes que se extraerán de cada línea de [archivo].
Dependiendo de lo que quieras extraer, puedes cortar un solo byte, varios bytes o un rango de bytes. Para cortar de un archivo específico, especifica el nombre del archivo al final del comando.
Por ejemplo, para extraer el primer byte de cada línea de entrada del archivo ejemplo.csv, ejecuta:
cut -b 1 ejemplo.csvn
A
B
CSelección de campo basada en números de campo
El comando cut permite a los usuarios seleccionar campos específicos de líneas de texto, lo que lo hace útil para procesar datos estructurados como CSV (valores separados por comas). Cuando se utiliza la selección de campos basada en números de campo, puedes extraer campos completos en lugar de caracteres individuales.
Para seleccionar campos, utiliza la opción -f junto con la opción -d para especificar el delimitador que separa los campos.
Por ejemplo, extrae solo la segunda columna, que representa la edad. Para hacerlo, usa el comando cut con la opción -d para especificar el delimitador (una coma en este caso) y -f2 para seleccionar el segundo campo:
cut -d',' -f2 ejemplo.csvedad
30
25
35Esto extrae el segundo campo de cada línea usando la coma (,) como delimitador.
Opciones de delimitador del comando cut de Linux
Los delimitadores son caracteres que separan los campos en datos estructurados, como las comas en los archivos CSV o los espacios en los archivos de registro. Al usar las opciones de delimitador con el comando cut, personalizas la extracción de campos específicos de conjuntos de datos complejos.
Delimitador predeterminado
El delimitador predeterminado para el comando cut es el carácter de tabulación. Esto significa que si no especificas un delimitador usando la opción -d, cut asume que los campos de tu entrada están separados por tabulaciones.
Si tus datos usan un delimitador diferente, como comas, espacios o dos puntos, debes especificar el delimitador con -d.
Delimitador personalizado
Si el carácter de tabulación predeterminado no separa los campos, usa la opción -d para especificar un delimitador diferente. Eso significa que el carácter especificado después de la opción -d se considera el separador en las líneas. La sintaxis es:
cut -d [delimitador] [archivo]En lugar del argumento [delimitador], especifica el delimitador que desees. Puedes usar cualquier carácter como delimitador.
En el siguiente ejemplo, usamos espacios en blanco como delimitador e imprimimos el segundo campo:
echo "Adictosalinux el mejor blog de Linux" | cut -d ' ' -f 2elComando cut de Linux: Opciones adicionales
El comando cut ofrece varias opciones adicionales que mejoran su funcionalidad para extraer y manipular texto.
Por ejemplo, la opción --complement imprime todo excepto el carácter/byte/campo en la posición especificada. El siguiente comando imprime todos los campos excepto el primero:
cut ejemplo.csv -f 1 --complementedad,ciudad
30,Bogotá
25,Ciudad de México
35,Buenos AiresAdemás, al especificar varios caracteres/bytes/campos, el comando cut concatena la salida sin un delimitador. Especifica un delimitador en la salida usando la opción --output-delimiter.
Por ejemplo, para establecer el delimitador de salida en _ (guion bajo), usa:
cut -d',' -f1,3 --output-delimiter='_' ejemplo.csvnombre_ciudad
Alicia_Bogotá
Bob_Ciudad de México
Carlos_Buenos AiresCombinando cut con otros comandos
Combinar el comando cut con otros comandos es una forma poderosa de manipular y extraer datos en Linux.
Por ejemplo, usa ps para listar procesos, luego fíltralo con cut para mostrar columnas específicas, como el ID de proceso (PID) y el nombre del comando:
ps -e | cut -c1-5,25-
El comando incluye:
ps -e. Muestra todos los procesos en ejecución.cut -c1-5,25-. Extrae el PID (primeros cinco caracteres) y el comando (desde el carácter 25 en adelante).
Usa cut combinado con head o tail para extraer filas y columnas específicas de un archivo. Por ejemplo, extrae las tres primeras filas y solo los campos de nombre y ciudad (la primera y tercera columnas). Para hacerlo, combina head y cut así:
head -n 3 ejemplo.csv | cut -d ',' -f1,3nombre,ciudad
Alicia,Bogotá
Bob,Ciudad de MéxicoEl comando incluye:
head -n 3 ejemplo.csv. Muestra las tres primeras líneas del archivoejemplo.csv.cut -d ',' -f1,3. Corta el primer y tercer campo usando una coma (,) como delimitador.
cut de Linux: Manejo de formatos de datos irregulares
El comando cut está diseñado para formatos de datos estructurados y regulares, y tiene dificultades con datos irregulares donde un solo delimitador no separa los campos de manera consistente. En tales casos, cut no es la mejor herramienta. Sin embargo, hay maneras de manejar datos irregulares con algunos ajustes o combinando cut con otras herramientas.
Por ejemplo, si los datos están separados por múltiples espacios o delimitadores inconsistentes, usa tr (traducir) o sed para normalizar los delimitadores.
Por ejemplo, el siguiente archivo tiene datos con espaciado irregular:
cat data.txt con datos irregulares:
nombre edad ciudad
Alicia 30 Bogotá
Roberto 25 Ciudad de México
Carlos 35 Buenos AiresConvierte múltiples espacios en un solo espacio usando tr -s antes de cut:
cat data.txt | tr -s ' ' | cut -d ' ' -f1,3nombre ciudad
Alicia Bogotá
Roberto Ciudad de México
Carlos Buenos AiresAdemás, si tus datos usan delimitadores mixtos, como espacios y comas, usa sed para convertir todos los delimitadores en un solo formato. Por ejemplo, el siguiente archivo contiene datos con comas y espacios como delimitadores:
cat data.txt:
nombre,edad ciudad
Alicia,30 Bogotá
Roberto,25 Ciudad de México
Carlos,35 Buenos AiresPara convertir comas y espacios en un solo delimitador (por ejemplo, una coma), ejecuta:
sed 's/ /,/g' data.txt | cut -d ',' -f1,3Invertir el texto (mostrar en espejo)
Para invertir el texto de un archivo y mostrar la versión en espejo, puedes usar el comando rev combinado con cut. rev invierte el orden de los caracteres de cada línea. cut se usa para seleccionar parte del texto luego de la inversión. Por ejemplo:
rev /home/adictosalinux/uso_cut.txt | cut -d'.' -f1Este comando invierte el contenido del archivo /home/adictosalinux/use_cut.txt usando rev y luego extrae la primera parte hasta el primer punto (.) usando cut.
Ejemplo:
Si /home/adictosalinux/uso_cut.txt contiene:
Linux y Unix son sistemas operativos
Comandos, funciones, utilidades
¡Aprendiendo a usar cut!La salida del comando sería:
sovitarepo sametsis nos xinu y xuni xuniL
sedadilitu ,senoicnuf ,sadnamoC
!tuc rasu a odneidnerpA¡Conclusión
Este artículo explicó qué es el comando cut de Linux y cómo usarlo para procesar un archivo o la salida de un comando. La guía también incluyó una sección sobre cómo manejar formatos de datos irregulares.
A continuación, aprende sobre otros comandos importantes de Linux con esta hoja de trucos de comandos de Linux.







¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.