
El comando cut en Linux es una utilidad esencial para el procesamiento de texto, diseñada para extraer segmentos específicos de cada línea de un archivo o de la entrada canalizada. Este comando no modifica el archivo original, sino que lee los datos y muestra las porciones deseadas en la salida estándar. En esta guía, profundizaremos en la funcionalidad del comando cut en Linux y proporcionaremos ejemplos prácticos del mundo real para demostrar su uso.
Explorando el comando de corte
El cut
comando es fundamental para quienes trabajan con texto estructurado, ya que facilita la manipulación y extracción de datos en entornos tipo Unix. Al extraer fragmentos de una línea según la posición de bytes, la posición de caracteres, los separadores o los campos, cut resulta invaluable para filtrar y organizar datos en scripts de shell y operaciones de línea de comandos. Sus aplicaciones abarcan desde la recuperación de columnas específicas de archivos CSV hasta la eliminación de caracteres innecesarios o el análisis de registros. Aunque suele emplearse directamente con archivos, cut también interactúa fluidamente con la salida de otros comandos cuando se utiliza en una canalización.
Sintaxis básica del comando cut
El comando cortar es sencillo: utiliza opciones seguidas de un nombre de archivo. La sintaxis es la siguiente:
cut [OPTIONS] [FILE]
En esta estructura, las OPCIONES determinan cómo funciona el comando cortar, lo que permite seleccionar un separador de campo (como una coma), elegir campos específicos, establecer rangos y excluir líneas que no tengan el separador, entre otras funciones. Si no se especifica un archivo, cortar leerá desde la entrada estándar. Además, se pueden proporcionar varios archivos, que se tratarán como una entidad combinada para su procesamiento.
Opciones de uso común
El comando cortar ofrece diversas opciones para localizar con precisión los segmentos de texto que se van a extraer. Estas son algunas de las más utilizadas:
- -f o –fields=LIST : permite la selección de campos específicos según un delimitador designado.
- -b o –bytes=LIST : extrae bytes especificados de cada línea.
- -c o –characters=LIST : recupera caracteres específicos de cada línea.
- -d o –delimiter : establece un delimitador personalizado en lugar de la tabulación predeterminada.
- –complement : genera todo excepto los campos, bytes o caracteres especificados.
- -s o –only-delimited : omite las líneas que carecen del delimitador; dichas líneas se incluyen de forma predeterminada.
- –output-delimiter : permite seleccionar un delimitador diferente para la salida, en contraste con el delimitador de entrada.
Las opciones -f
, -b
, y -c
utilizan una LISTA para definir qué extraer. Puede especificar lo siguiente:
- Un solo número como 2.
- Varios números separados por comas, como 1, 3, 5.
- Un rango como 2-4 (para extraer valores de 2 a 4).
-
N-
para denotar extracción desde la posición N hasta el final. -
-M
para significar extracción desde el inicio hasta la posición M.
Utilizando el comando cut en Linux
Para ilustrar el funcionamiento del comando cortar, ejecutemos algunos ejemplos prácticos. Primero, creemos un archivo de ejemplo llamado «mte.csv» con el comando echo:
echo -e "empID, empName, empDesig\n101, Anees, Author\n102, Asghar, Manager\n103, Damian, CEO" > mte.csv

A continuación, podemos comprobar el contenido del archivo utilizando el comando cat:
cat mte.csv

Es fundamental mencionar que el comando de corte simplemente presenta la salida especificada sin cambiar el archivo en sí.
Extracción de datos por caracteres
Para extraer caracteres por posición, utilice la -c
opción con el comando cortar:
cut -c 1, 8 mte.csv
Este comando extrae el primer y el octavo carácter de cada fila:

Para extraer caracteres dentro de un rango específico, aplique el siguiente comando:
cut -c 1-8 mte.csv
Esto extrae caracteres de las posiciones 1 a 8 en cada fila:

Extracción por byte
Para extraer bytes específicos, utilice la -b
opción con el comando de corte:
cut -b 1-3 mte.csv
Este comando extrae los primeros tres bytes de cada línea del archivo mte.csv
:

Extracción por campo (columna)
Para extraer un campo completo de un archivo, utilice el comando cortar con las opciones -f
y :-d
cut -d', ' -f2 mte.csv
En este comando, -d', '
designa una coma como delimitador, mientras que -f2
indica que cut debe extraer el segundo campo de cada línea:

Implementación de delimitadores personalizados en cut
Aunque cortar usa una tabulación como delimitador por defecto, si los campos están separados por un carácter diferente, use -d
para especificar el correcto. Por ejemplo, para extraer la quinta palabra de una oración separada por espacios, puede usar:
echo "Hey! Geeks Welcome to Maketecheasier.com" | cut -d ' ' -f 5

Exclusión de campos específicos durante la extracción
Puede omitir ciertos campos al extraer texto de un archivo utilizando la --complement
opción con el comando cortar. Esta opción especifica que cortar debe mostrar todos los campos excepto los designados:
cut -d', ' -f1 mte.csv --complement
Este comando omite la primera columna y devuelve el resto del contenido:

Modificar el delimitador de salida predeterminado
De forma predeterminada, al extraer campos, el comando cortar conserva el delimitador de entrada en la salida. Sin embargo, puede modificar el delimitador de salida con la --output-delimiter
opción:
cut -d', ' -f1-3 --output-delimiter='-' mte.csv
Este comando utiliza un guion como separador en la salida:

Combinando cut con otros comandos de Linux
El comando cortar también puede utilizarse junto con otros comandos de Linux que utilizan el símbolo de canalización |.Por ejemplo, el siguiente comando extrae los primeros cinco caracteres de cada línea de salida del who
comando:
who | cut -c 1-5

En otro ejemplo, puede usar el comando cut junto con head para mostrar las dos primeras líneas de “mte.csv”, extrayendo solo los campos empName y empDesig:
head -n 2 mte.csv | cut -d ', ' -f2, 3

Navegación por formatos de datos irregulares con el comando cut de Linux
El comando «cut» es excelente para manejar datos bien formateados con delimitadores consistentes (como comas o tabulaciones).Sin embargo, si encuentra archivos con espaciado inconsistente o delimitadores mixtos, usar solo «cut» puede generar resultados insatisfactorios. Para solucionar estos casos, suele ser recomendable limpiar los datos previamente con comandos como tr
o sed
, lo que garantiza que «cut» pueda extraer eficazmente las partes correctas.
Gestión de espacios excedentes
Considere un archivo llamado “mteData.txt” donde los campos están separados por diferentes espacios:
cat mteData.txt

Dado que el corte anticipa un solo delimitador, utilice tr
para normalizar el espaciado antes de aplicar el corte:
cat mteData.txt | tr -s ' ' | cut -d ' ' -f1-2
Este comando procesa “mteData.txt”, reemplaza varios espacios con uno solo usando tr
y luego extrae los dos primeros campos:

Gestión de delimitadores mixtos
Si un archivo utiliza una combinación de espacios y comas, normalice el formato con sed
. Por ejemplo, un archivo llamado «mteData1.txt» contiene:
cat mteData1.txt

Utilice sed
con cut para convertir todos los espacios en comas y luego extraiga el primer y tercer campo:
sed 's/ /, /g' mteData1.txt | cut -d ', ' -f1, 3

Conclusión
A lo largo de este artículo, hemos descubierto las funcionalidades del comando cut de Linux, una herramienta esencial para extraer datos de archivos o entradas canalizadas. Gracias a su sintaxis sencilla, puede obtener fácilmente caracteres, bytes o campos basándose en un delimitador específico. Además, mostramos cómo combinar el comando cut con otras utilidades como tr
, sed
, y head
para gestionar datos no limpios y lograr una salida más eficiente. Ya sea que esté manejando archivos CSV, analizando registros o limpiando datos, el comando cut es un recurso indispensable para el procesamiento de texto en entornos tipo Unix.
Preguntas frecuentes
1.¿Cuál es el propósito principal del comando cut en Linux?
El comando cortar en Linux se utiliza principalmente para extraer secciones específicas de texto de archivos o la salida de otros comandos. Permite a los usuarios manipular y formatear datos eficazmente basándose en delimitadores, posiciones de bytes o posiciones de caracteres.
2.¿Puedo combinar el comando de corte con otros comandos de Linux?
¡Sí! El comando cortar se integra perfectamente con otros comandos de Linux mediante el símbolo de canalización (|).Esto permite un procesamiento de datos potente, lo que permite filtrar y formatear la salida de varios comandos.
3.¿Cómo puedo especificar un delimitador personalizado al utilizar el comando cortar?
Puede especificar un delimitador personalizado usando la -d
opción seguida del carácter delimitador deseado. Por ejemplo, para usar una coma como delimitador, usaría -d', '
.
Deja una respuesta