Los sistemas operativos basados ​​en Linux ofrecen muchas utilidades de procesamiento de texto de línea de comandos que puede usar en su rutina diaria. El comando de corte es una de esas utilidades de manipulación de texto que utiliza delimitadores, bytes, campos y columnas para obtener una cadena requerida de una base de datos de archivo sin formato o una línea.

Dado que una base de datos de archivo plano no tiene una relación estructural y los registros se separan con la ayuda de delimitadores, cut es una herramienta ideal para extraer caracteres o bytes de información. Este artículo analiza el comando de corte en detalle y muestra algunos ejemplos prácticos con diferentes opciones de filtro para que pueda comenzar a usar la herramienta.

Descripción general del comando de corte

cut utiliza la siguiente sintaxis básica:

cortar 

También puede canalizarlo con otros comandos de la siguiente manera:

echo “cadena_de_caracteres” | cortar 

Tenga en cuenta que la ausencia de alguna opción genera un error. Aquí hay algunas banderas que puede usar con cut para invocar sus diversas funciones:

instagram viewer
Opción Descripción
-B Cortes por posición de byte
-C Cortes por posición de personaje
-D Extrae la cadena usando el delimitador especificado con la opción de campo (-f)
-F Extrae por un campo especificado
-s Extractos solo para delimitadores
--complemento Imprima la salida excepto el campo que ha especificado
--delimitador de salida Reemplace el delimitador existente con el que ha especificado

Estos son algunos ejemplos del comando de corte que lo ayudarán a comprender mejor la herramienta y sus funciones.

1. Extraer caracteres específicos de una cadena

Utilizar el -B opción para obtener cadenas de caracteres por su recuento de bytes, de la siguiente manera:

echo "Hola Mundo" | cortar -b 1,2,3,5,8,9

Producción:

heloor

También puede especificar una ruta de archivo en lugar de una cadena:

corte -b 1,2,3,4,5 nombre de archivo.txt

O puede extraer caracteres según su posición en el texto. Utilizar el -C opción seguida de la secuencia/orden de los caracteres que necesita obtener de la siguiente manera:

echo "Hola mundo" | cortar -c 1,2,3,5,6,8,10,11

Producción:

hola viejo

De manera similar, para obtener campos o columnas de una base de datos de archivos sin formato, utilice el comando de corte con la -F opción de bandera:

cut -f 3 base de datos.txt

2. Cortar rango de bytes o caracteres

También puede utilizar el -B marca con el comando de corte para extraer e imprimir múltiples rangos de bytes de la siguiente manera:

cortar -b 1-7,16-23 base de datos.txt

Puede definir el rango para obtener caracteres usando el -C bandera de la siguiente manera:

cortar -c 1-7,16-23 base de datos.txt

3. Extraer texto de las posiciones inicial o final

Utilizar el -cn- opción para extraer texto desde el carácter n en adelante hasta el final de la línea, donde norte es el índice de un carácter en la cadena.

Por ejemplo, para extraer la cadena desde el sexto carácter hasta el final de la línea:

cortar -c6- base de datos.txt

O use el siguiente comando para buscar desde el principio hasta el último metro caracteres del archivo:

cortar -c-8 base de datos.txt

4. Cortar varios campos de un archivo

También puede imprimir múltiples campos de un archivo usando el -F bandera.

cut -f 1,2 base de datos.txt

Producción:

NOMBRE EDAD 
Juan 20
Lisa 24
jota 18
bruce 23
nancy 19

5. Extraer texto usando delimitadores

Puedes usar el -D bandera para especificar el delimitador con el -F opción. El delimitador especifica el carácter utilizado para separar campos en un archivo de texto.

Por ejemplo, para extraer la primera columna del /etc/passwd archivo, utilice dos puntos (:) como delimitador:

cortar -d ':' -f 1 /etc/contraseña

De manera similar, el valor del delimitador en la secuencia de texto dada es un solo espacio:

echo "El 1% del 1%" | cortar -d ' ' -f 2,3

Producción:

1% de

6. Cambiar delimitador de salida para visualización

El --delimitador de salida flag agrega flexibilidad a la salida del comando de corte. Por ejemplo, puede usar la bandera para mostrar la salida en una línea separada usando el $'\n' (nueva línea) valor, de la siguiente manera:

grep alicia /etc/passwd | cortar -d ':' -f 1,5,7 --output-delimiter=$'\⁠n'

Producción:

Alicia
Alicia
/bin/sh

Además, también puede reemplazar un delimitador de un archivo de entrada con el delimitador de su elección en la salida usando el --delimitador de salida bandera:

raíz grep /etc/contraseña | cortar -d ':' -f 1,6,7 --salida-delimitador=@

Producción:

raíz@/raíz@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin

7. Cortar campos solo cuando una línea contiene el delimitador

Utilizar el -s marca para extraer campos solo cuando las líneas contienen un delimitador. Por ejemplo, el siguiente comando no obtendrá el campo -f 1 a menos que tenga un delimitador de espacio:

echo "HolaMundo" | cortar -d " " -f 1 -s

Por el contrario, el comando mencionado a continuación generará una salida ya que la cadena contiene el delimitador especificado:

echo "Hola Mundo" | cortar -d " " -f 1 -s

Producción:

Hola

Del mismo modo, también puede utilizar cualquier otro carácter como delimitador:

echo "Hola: Mundo" | cortar -d ":" -f 2 -s

Producción:

Mundo

8. Complementar la salida del comando

La utilidad de corte también le permite imprimir todos los campos excepto el campo especificado. Utilizar el --complemento opción de la siguiente manera para obtener todos los detalles de la cuenta de usuario raíz excepto la quinta columna:

grep "raíz" /etc/passwd | cortar -d ':' --complemento -s -f 5

Producción:

raíz: x: 0:0:/raíz:/bin/bash

De manera similar, en el siguiente ejemplo, el -f 1 el parámetro debe mostrarse Hola texto sin embargo, debido a la --complemento opción, solo imprime el resto.

echo "Hola a todo el mundo" | cortar -d " " -f 1 --complemento

Producción:

a todo el mundo

La mejor parte es que puede combinar el comando de corte con la salida estándar de otros comandos de Linux/Unix.

sed es una de esas herramientas de edición de texto que puede usar para eliminar, insertar y reemplazar su texto. Puede canalizar fácilmente su salida al comando de corte.

En el siguiente ejemplo, el comando grep la salida se canaliza a la utilidad sed que reemplaza los dos puntos (:) con un guión (-) y luego, cut muestra los campos 1, 6 y 7 de la siguiente manera:

grep alicia /etc/passwd | sed's/:/-/g' | cortar -d ' ' -f 1,5,7

Producción:

alice-x-1005-1008-Alice-/home/nuevo/alice-/bin/sh

Trabajando con texto en Linux usando cut

El comando de corte es una utilidad de línea de comandos flexible y eficiente que puede usar en varios casos de manipulación de texto. Utiliza operaciones para filtrar texto de archivos o datos de entrada estándar. La utilidad también tiene la ventaja de permitir a los usuarios limitar el texto que desean mostrar y agregar delimitadores de su propia elección.

Sin embargo, este comando también tiene algunas limitaciones. No puede usar expresiones regulares para especificar un delimitador o usar opciones de comandos de corte múltiples concurrentes. Este artículo ha cubierto ejemplos prácticos de nivel básico a avanzado de esta utilidad para ayudar a los principiantes con una comprensión clara de los comandos de manipulación de texto en Linux.

Los 5 comandos de manipulación de texto de Linux más útiles

¿Quiere mejorar su juego de Linux y aprender más sobre la manipulación de texto? Aquí están las cinco principales herramientas de línea de comandos de Linux para comenzar su viaje.

Leer siguiente

CuotaPíoCorreo electrónico
Temas relacionados
  • linux
  • Comandos Linux
  • Primaria Linux
  • Consola Bash de Linux
Sobre el Autor
Rumaisa Niazi (10 artículos publicados)

Rumaisa es escritora independiente en MUO. Ha desempeñado muchas funciones, desde matemática hasta entusiasta de la seguridad de la información, y ahora trabaja como analista de SOC. Sus intereses incluyen leer y escribir sobre nuevas tecnologías, distribuciones de Linux y todo lo relacionado con la seguridad de la información.

Más de Rumaisa Niazi

Suscríbete a nuestro boletín

¡Únase a nuestro boletín para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse