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.csv
El 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 Aires
Confirma el contenido del archivo con el comando cat:
cat ejemplo.csv
A continuación, se muestran los ejemplos de uso más comunes del comando cut
.
Nota:
cut
solo 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.csv
El comando extrae los caracteres especificados de cada línea del archivo ejemplo.csv
y los muestra como salida.
ne
Ai
B2
Co
El 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-4
En 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.csv
n
A
B
C
Selecció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.csv
edad
30
25
35
Esto 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 2
el
Comando 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 --complement
edad,ciudad
30,Bogotá
25,Ciudad de México
35,Buenos Aires
Ademá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.csv
nombre_ciudad
Alicia_Bogotá
Bob_Ciudad de México
Carlos_Buenos Aires
Combinando 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,3
nombre,ciudad
Alicia,Bogotá
Bob,Ciudad de México
El 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 Aires
Convierte múltiples espacios en un solo espacio usando tr -s
antes de cut
:
cat data.txt | tr -s ' ' | cut -d ' ' -f1,3
nombre ciudad
Alicia Bogotá
Roberto Ciudad de México
Carlos Buenos Aires
Ademá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 Aires
Para convertir comas y espacios en un solo delimitador (por ejemplo, una coma), ejecuta:
sed 's/ /,/g' data.txt | cut -d ',' -f1,3
Invertir 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'.' -f1
Este 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.