Ejemplos de comandos de corte de Linux

El comando de corte de Linux es uno de los comandos útiles para trabajar con datos de cadenas y contenido de archivos. Se utiliza principalmente para cortar contenido de datos tabulares o archivos CSV. Cada línea del archivo se puede cortar y los datos requeridos se pueden recuperar fácilmente usando el comando «cortar». También se puede utilizar para cortar texto por delimitador o carácter o posición de byte. Este comando tiene muchas opciones para cortar datos del texto o archivo de diferentes formas. En este tutorial se muestra cómo se puede usar el comando de corte con diferentes opciones usando varios ejemplos.

Sintaxis:

OPCIÓN de corte. ..…

El valor de OPCIÓN es obligatorio para el comando `cut` y el nombre de ARCHIVO es opcional. Si omite el nombre del archivo en el comando, tomará datos de la entrada estándar. Pero si omite el valor de OPCIÓN en el comando de corte, se generará el error.

Opciones:

Etiqueta de opción Descripción
-b o –byte = LIST Seleccione los bytes particulares.
-c o –character = LIST Seleccione los caracteres particulares.
-d o –delimiter = DELIM Seleccione el valor DELIM como delimitador. El delimitador predeterminado es TAB.
-f o –fields = LIST Seleccione los campos particulares
–complement Úselo para complementar la salida
-s o –only-delimited Omita la líneas que no contienen delimitador.
–output-delimiter = STRING Usa el valor STRING como delimitador de salida.
-z o –zero-terminado Use NULL como delimitador de línea.

Ejemplo-1 : Cortar por bytes

El siguiente comando de corte dividirá los datos de entrada estándar en función de los bytes definidos. Aquí, 3, 4, 5 y 6 se definen como bytes. La salida se generará según la entrada estándar. Presione CTRL + D para salir del comando.

$ cut -b 3,4,5,6

Salida:

Aquí, la entrada es «Me gusta programar» y la salida es «Me gusta» según los bytes mencionados.

Cree un archivo de texto llamado «productlist.txt» con el siguiente contenido para aplicar el comando `cut`. Use TAB para separar los campos del contenido del archivo.

ID Nombre Precio
01 Lápiz $ 2
02 Lápiz $ 1.5
03 Borrador $ 1

Ejecute el siguiente comando para recuperar solo el ID de producto. Aquí, los bytes se dan como un rango, ‘1-2 ′ para cortar los datos.

$ cut -b 1-2 < productlist.txt

Salida:

Ejemplo-2: Cortar por caracteres

Puede generar la misma salida usando la opción -c, los que se muestran en los ejemplos anteriores. Por lo tanto, no hay una diferencia particular entre la salida de -b y – c opciones del comando de corte. Ejecute el siguiente comando para mostrar el uso de la opción -c. Aquí, 4- se usa como un valor de opción que cortará desde la posición 4 a todos los caracteres restantes de cada línea. También puede usar el signo negativo delante del valor como -4, luego se cortará desde el principio a 4 posiciones.

$ cut -c 4- productlist.txt

Salida:

Los primeros tres caracteres se omiten en la salida.

Ejemplo-3: Cortar por delimitador y campos

Cree un archivo CSV llamado ‘Students.csv’ con el siguiente contenido para mostrar el uso del delimitador.

1001, Jonathan, CSE, 3.74
1002, Micheal, EEE, 3.99
1003, Asraful Haque, BBA, 3.85
1004, Momotaj Khan, inglés, 3.20

Ejecute el siguiente comando para imprimir el nombre del estudiante y CGPA desde el archivo Students.csv. De acuerdo con el contenido del archivo, los campos 2 y 4 contienen el nombre del estudiante y CGPA. Entonces, se usan dos opciones en este comando para mostrar el resultado. Uno es el delimitador, -d, que es ‘,’ aquí y otro es la opción de campo, -f.

$ cut -d «,» – f 2,4 estudiantes.csv

Salida:

Si desea imprima dos o más columnas secuenciales de cualquier archivo de datos tabulares o CSV, entonces puede definir los campos como un rango. El rango de valor de campo se usa en el siguiente comando. Aquí, todos los campos del 2 al 4 se imprimirán como salida.

$ cut -d «,» -f 2-4 estudiantes.csv

Salida:

Ejemplo-4: Cortar por complemento

–la opción de complemento se usa para generar la salida opuesta del comando . En el siguiente comando, se utiliza el archivo productlist.txt que se crea en el primer ejemplo. Aquí, la opción -f cortará el primer campo y la opción –complement imprimirá todos los demás campos del archivo omitiendo el primer campo.

$ cat productlist.txt
$ cut –complement -f 1 productlist.txt

Resultado:

Ejemplo-5: Cortar por delimitador de salida

Esta opción se usa para generar la salida usando un delimitador particular. El archivo Students.csv creado anteriormente se usa en el siguiente comando. «,» Es el delimitador predeterminado de cualquier archivo CSV. El siguiente comando usa ‘:’ como valor delimitador de salida.

$ cat estudiantes.csv
$ cut -d «,» -f 1- 3 Students.csv –output-delimiter = «:»

Salida:

Después de ejecutar el comando, el delimitador de entrada ‘,’ será reemplazado por el delimitador de salida ‘:’ y los primeros tres campos se imprimirán separando ‘:’.

Ejemplo-6: Uso de cortar con comando pipe

El comando Cut puede tomar la entrada de cualquier archivo o de la entrada del usuario. Pero el texto de entrada se puede enviar al comando de corte usando la tubería. El siguiente comando muestra el uso del comando de corte con la tubería. Aquí, el comando echo será el texto de entrada para cortar el comando y el comando cut cortará los campos 2 y 3 según el delimitador.

$ echo «Prueba de corte comando «| cut -d «» -f 2,3

Salida:

Ejemplo -7: Guardar la salida del comando de corte en un archivo

Si lo desea, también puede guardar la salida del comando de corte en cualquier archivo de texto. El siguiente comando tomará el contenido del archivo Students.csv como entrada, cortará el segundo campo basado en el delimitador e imprimirá la salida en un archivo de texto llamado ‘student_names.txt’.

Salida:

Conclusión:

Los usos más comunes del comando cut se intentan explicar en este tutorial usando lo anterior ejemplos. Espero que los lectores eliminen los usos del comando cut después de ejercitar los ejemplos anteriores.

Leave a Reply

Deja una respuesta

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