Guía completa sobre el uso del comando Cut en Linux

Guía completa sobre el uso del comando Cut en Linux

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 cutcomando 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 -cutilizan 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.
  • -Mpara 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

Comando Echo

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

cat mte.csv

Mostrar datos del archivo

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 -copción con el comando cortar:

cut -c 1, 8 mte.csv

Este comando extrae el primer y el octavo carácter de cada fila:

Cortar por personajes

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:

Cortar por rango

Extracción por byte

Para extraer bytes específicos, utilice la -bopció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:

Cortar por bytes

Extracción por campo (columna)

Para extraer un campo completo de un archivo, utilice el comando cortar con las opciones -fy :-d

cut -d', ' -f2 mte.csv

En este comando, -d', 'designa una coma como delimitador, mientras que -f2indica que cut debe extraer el segundo campo de cada línea:

Cortar por campo

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 -dpara 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

Cortar con delimitador personalizado

Exclusión de campos específicos durante la extracción

Puede omitir ciertos campos al extraer texto de un archivo utilizando la --complementopció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:

Corte con complemento

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-delimiteropción:

cut -d', ' -f1-3 --output-delimiter='-' mte.csv

Este comando utiliza un guion como separador en la salida:

Delimitador de salida personalizado

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 whocomando:

who | cut -c 1-5

Cortar con quién

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

Cortar con la cabeza

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 tro 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

Mostrar datos de muestra

Dado que el corte anticipa un solo delimitador, utilice trpara 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 try luego extrae los dos primeros campos:

Cortar con Tr

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

Mostrar contenido de muestra

Utilice sedcon 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

Cortar con sed

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 headpara 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 -dopción seguida del carácter delimitador deseado. Por ejemplo, para usar una coma como delimitador, usaría -d', '.

Fuente e imágenes

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *