comando de corte en Linux con ejemplos

El comando de corte en UNIX es un comando para cortar las secciones de cada línea de archivos y escribir el resultado en la salida estándar. Se puede usar para cortar partes de una línea por posición de byte, carácter y campo . Básicamente, el comando de corte corta una línea y extrae el texto. Es necesario especificar la opción con el comando, de lo contrario da error. Si se proporciona más de un nombre de archivo, los datos de cada archivo no van precedidos por su nombre de archivo.

Sintaxis:

cut OPTION... [FILE]...

Consideremos dos archivos con el nombre state.txt y capital.txt que contienen 5 nombres de los estados y capitales de la India, respectivamente.

$cat state.txt
Andhra Pradesh
Arunachal Pradesh
Assam
Bihar
Chhattisgarh

Sin ninguna opción especificada, muestra un error.

$cut state.txt
cut: you must specify a list of bytes, characters, or fields
Try 'cut --help' for more information.

Opciones y su descripción con ejemplos:

1. -b(byte): Para extraer los bytes específicos, debe seguir la opción -b con la lista de números de bytes separados por comas. El rango de bytes también se puede especificar usando el guión (-). Es necesario especificar la lista de números de bytes, de lo contrario, da error. Las tabulaciones y los retrocesos se tratan como un carácter de 1 byte.

List without ranges
$cut -b 1,2,3 state.txt
And
Aru
Ass
Bih
Chh

List with ranges
$cut -b 1-3,5-7 state.txt
Andra
Aruach
Assm
Bihr
Chhtti

Utiliza un formulario especial para seleccionar bytes desde el principio hasta el final de la línea:

In this, 1- indicate from 1st byte to end byte of a line
$cut -b 1- state.txt
Andhra Pradesh
Arunachal Pradesh
Assam
Bihar
Chhattisgarh

In this, -3 indicate from 1st byte to 3rd byte of a line
$cut -b -3 state.txt
And
Aru
Ass
Bih
Chh

2. -c (columna): Para cortar por carácter utilice la opción -c. Esto selecciona los caracteres dados a la opción -c. Puede ser una lista de números separados por comas o un rango de números separados por un guión (-). Las tabulaciones y los retrocesos se tratan como un carácter. Es necesario especificar la lista de números de caracteres, de lo contrario da error con esta opción.

Sintaxis:

$cut -c [(k)-(n)/(k),(n)/(n)] filename

Aquí, k denota la posición inicial del carácter y n denota la posición final del carácter en cada línea, si k y n están separados por «-» de lo contrario, son solo la posición del carácter en cada línea del archivo tomado como un aporte.

$cut -c 2,5,7 state.txt
nr
rah
sm
ir
hti

El comando de corte anterior imprime el segundo, quinto y séptimo carácter de cada línea del archivo.

$cut -c 1-7 state.txt
Andhra
Arunach
Assam
Bihar
Chhatti

El comando de corte anterior imprime los primeros siete caracteres de cada línea del archivo.

Cut utiliza un formulario especial para seleccionar caracteres desde el principio hasta el final de la línea:

$cut -c 1- state.txt
Andhra Pradesh
Arunachal Pradesh
Assam
Bihar
Chhattisgarh

Above command prints starting from first character to end. Here in command only starting
position is specified and the ending position is omitted.

$cut -c -5 state.txt
Andhr
Aruna
Assam
Bihar
Chhat

Above command prints starting position to the fifth character. Here the starting position
is omitted and the ending position is specified.

3. -f (campo): la opción -c es útil para líneas de longitud fija. La mayoría de los archivos de Unix no tienen líneas de longitud fija. Para extraer la información útil, necesita cortar por campos en lugar de columnas. La lista del número de campos especificado debe estar separada por comas. Los rangos no se describen con la opción -f . cut usa la pestaña como delimitador de campo predeterminado, pero también puede funcionar con otro delimitador usando la opción -d .
Nota: El espacio no se considera como delimitador en UNIX.

Sintaxis:

$cut -d "delimiter" -f (field number) file.txt

Al igual que en el archivo state.txt , los campos están separados por espacios si no se usa la opción -d, entonces imprime la línea completa:

$cut -f 1 state.txt
Andhra Pradesh
Arunachal Pradesh
Assam
Bihar
Chhattisgarh

Si se usa la opción -d, entonces se considera el espacio como un separador o delimitador de campo:

$cut -d " " -f 1 state.txt
Andhra
Arunachal
Assam
Bihar
Chhattisgarh
Command prints field from first to fourth of each line from the file.
Command:
$cut -d " " -f 1-4 state.txt
Output:
Andhra Pradesh
Arunachal Pradesh
Assam
Bihar
Chhattisgarh

4. –complemento: Como su nombre indica complementa la salida. Esta opción se puede usar en combinación con otras opciones, ya sea con -f o con -c .

$cut --complement -d " " -f 1 state.txt
Pradesh
Pradesh
Assam
Bihar
Chhattisgarh

$cut --complement -c 5 state.txt
Andha Pradesh
Arunchal Pradesh
Assa
Biha
Chhatisgarh

5. –output-delimiter: por defecto, el delimitador de salida es el mismo que el delimitador de entrada que especificamos en el corte con la opción -d . Para cambiar el delimitador de salida, use la opción –output-delimiter=”delimiter” .

$cut -d " " -f 1,2 state.txt --output-delimiter='%'
Andhra%Pradesh
Arunachal%Pradesh
Assam
Bihar
Chhattisgarh

Aquí, el comando de corte cambia el delimitador (%) en la salida estándar entre los campos que se especifica mediante la opción -f.

6. –versión: esta opción se utiliza para mostrar la versión de corte que se está ejecutando actualmente en su sistema.

$cut --version
cut (GNU coreutils) 8.26
Packaged by Cygwin (8.26-2)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later .
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David M. Ihnat, David MacKenzie, and Jim Meyering.

Aplicaciones del comando de corte

1. Cómo usar tail con tuberías (|): El comando de corte se puede canalizar con muchos otros comandos de Unix. En el siguiente ejemplo, la salida del comando cat se proporciona como entrada al comando cut con la opción -f para ordenar los nombres de los estados que provienen del archivo state.txt en el orden inverso.

$cat state.txt | cut -d ' ' -f 1 | sort -r
Chhattisgarh
Bihar
Assam
Arunachal
Andhra

También se puede canalizar con uno o más filtros para un procesamiento adicional. Como en el siguiente ejemplo, estamos usando los comandos cat, head y cut y cuya salida se almacena en el nombre de archivo list.txt usando la directiva (>).

$cat state.txt | head -n 3 | cut -d ' ' -f 1 > list.txt

$cat list.txt
Andhra
Arunachal
Assam

Gracias Saloni Gupta por proporcionar más ejemplos.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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