Androide

Comando de corte de Linux con ejemplos

Aprende a Utilizar el Comando SHELL

Aprende a Utilizar el Comando SHELL

Tabla de contenido:

Anonim

Hay muchas utilidades disponibles en sistemas Linux y Unix que le permiten procesar y filtrar archivos de texto. Cut es una utilidad de línea de comandos que le permite cortar partes de líneas de archivos específicos o datos canalizados e imprimir el resultado en la salida estándar. Se puede usar para cortar partes de una línea por delimitador, posición de byte y carácter.

En este tutorial, le mostraremos cómo usar el comando de corte de Linux a través de ejemplos prácticos y explicaciones detalladas de las opciones de corte más comunes.

Cómo usar el comando de corte

La sintaxis para el comando de corte es la siguiente:

cut OPTION……

Cuando use el comando de corte, debe usar una y solo una de las siguientes opciones:

  • -f ( --fields=LIST ): seleccione especificando un campo, un conjunto de campos o un rango de campos. Esta es la opción más utilizada. -b ( --bytes=LIST ): seleccione especificando un byte, un conjunto de bytes o un rango de bytes. -c ( --characters=LIST ): seleccione especificando un carácter, un conjunto de caracteres o un rango de caracteres.

Otras opciones son:

  • -d ( --delimiter ): especifique un delimitador que se utilizará en lugar del delimitador predeterminado "TAB". --complement - complementa la selección. Al usar esta opción, cut mostrará todos los bytes, caracteres o campos excepto el seleccionado. -s ( --only-delimited ): por defecto, el corte imprimirá cualquier línea que no contenga caracteres delimitadores. Al usar esta opción, cortar no imprimirá líneas que no contengan delimitadores. --output-delimiter : el valor predeterminado es usar el delimitador de entrada como delimitador de salida. Esta opción le permite especificar una cadena de delimitador de salida diferente.

El comando de corte puede aceptar cero o más nombres de ARCHIVO de entrada. Si no se especifica FILE, o cuando FILE es - , cut leerá la entrada estándar.

El argumento LIST que se pasa a las opciones -f , -b y -c puede ser un entero, múltiples enteros separados por comas, un rango de enteros o múltiples rangos de enteros separados por comas. Cada rango puede ser uno de los siguientes:

  • N el enésimo campo, byte o carácter, comenzando desde 1. N- desde el enésimo campo, byte o carácter, hasta el final de la línea. NM del campo, byte o carácter enésimo a enésimo. -M desde el primero hasta el campo Mth, byte o caracter.

Cómo cortar por campo

El comando Cortar se usa principalmente para mostrar los campos seleccionados de cada línea de archivos o la entrada estándar. Cuando no se especifica, el delimitador predeterminado es "TAB".

En los ejemplos a continuación, utilizaremos el siguiente archivo. Todos los campos están separados por pestañas.

test.txt

245:789 4567 M:4540 Admin 01:10:1980 535:763 4987 M:3476 Sales 11:04:1978

Para mostrar el primer y tercer campo que usaría:

cut test.txt -f 1, 3

245:789 M:4540 535:763 M:3476

O si desea mostrar del 1er al 4to campo:

cut test.txt -f -4

245:789 4567 M:4540 Admin 535:763 4987 M:3476 Sales

Cómo cortar en base a un delimitador

Para cortar según un delimitador, use la opción -d seguida del delimitador que desea usar.

Por ejemplo, para mostrar los campos primero y tercero usando ":" como delimitador, debe escribir:

cut test.txt -d ':' -f 1, 3

245:4540 Admin 01 535:3476 Sales 11

Puede usar cualquier carácter individual como delimitador. En el siguiente ejemplo, estamos usando el carácter de espacio como delimitador e imprimiendo el segundo campo:

echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2

ipsum

Cómo complementar la selección

Para complementar la lista de campos de selección, use la opción de --complement . Esto imprimirá solo aquellos campos que no estén seleccionados con la opción -f .

El siguiente comando imprimirá todos los campos excepto el primero y el tercero:

cut test.txt -f 1, 3 --complement

4567 Admin 01:10:1980 4987 Sales 11:04:1978

Cómo especificar un delimitador de salida

Para especificar el delimitador de salida, use la opción --output-delimiter . Por ejemplo, para establecer el delimitador de salida en _ usaría:

cut test.txt -f 1, 3 --output-delimiter='_'

245:789_M:4540 535:763_M:3476

Cómo cortar por bytes y caracteres

Antes de continuar, hagamos una distinción entre bytes y caracteres.

Un byte es de 8 bits y puede representar 256 valores diferentes. Cuando se estableció el estándar ASCII, tuvo en cuenta todas las letras, números y símbolos necesarios para trabajar con inglés. La tabla de caracteres ASCII tiene 128 caracteres y cada carácter está representado por un byte. Cuando las computadoras comenzaron a ser mundialmente populares, las compañías tecnológicas comenzaron a introducir nuevas codificaciones de caracteres para diferentes idiomas y para los idiomas que tienen más de 256 caracteres, no era posible un mapeo simple de 1 a 1. Esto lleva a diferentes problemas, como compartir documentos o navegar por sitios web, y se necesitaba un nuevo estándar Unicode que pueda manejar la mayoría de los sistemas de escritura del mundo. UTF-8 fue creado para resolver estos problemas. En UTF-8, no todos los caracteres están representados con 1 byte. Los caracteres se pueden representar con 1 byte a 4 bytes.

En los siguientes ejemplos, estamos usando el carácter ü que toma 2 bytes.

Use la opción -b ( --bytes ) para cortar una sección de una línea especificando una posición de byte.

Seleccione el quinto byte:

echo 'drüberspringen' | cut -b 5

b

Seleccione los bytes 5, 9 y 13:

echo 'drüberspringen' | cut -b 5, 9, 13

bpg

Seleccione el rango del 1 ° al 5 ° byte:

echo 'drüberspringen' | cut -b 1-5

drüb

Al momento de escribir este artículo, la versión de corte incluida en GNU coreutils no tiene una opción para cortar por caracteres. Cuando se usa la opción -c , el corte se comporta igual que cuando se usa la opción -b .

Cortar ejemplos

El comando de corte generalmente se usa en combinación con otros comandos a través de tuberías. Aquí están algunos ejemplos.

Obtenga una lista de todos los usuarios

La salida del comando getent passwd se pasa al cut que imprime el primer archivo usando : como delimitador.

getent passwd | cut -d ':' -f1

Ver los 10 comandos más utilizados

En el siguiente ejemplo, cut se usa para quitar los primeros 8 bytes de cada línea de la salida del comando de history .

history | cut -c8- | sort | uniq -c | sort -rn | head

Conclusión

A estas alturas ya debe tener una buena comprensión de cómo usar el comando de corte de Linux. Aunque es muy útil, el comando de corte tiene algunas limitaciones. No admite la especificación de más de un carácter como delimitador y no admite varios decímetros.

corte terminal