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