GNU/Linux >> Tutoriales Linux >  >> Linux

Cortar Comando en Linux

Hay muchas utilidades disponibles en los 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 una salida estándar. Se puede usar para cortar partes de una línea por delimitador, posición de byte y carácter.

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

Cómo usar el cut Comando #

La sintaxis para cut El comando es el siguiente:

cut OPTION... [FILE]...

Las opciones que le dicen a cut si se debe usar un delimitador, una posición de byte o un carácter al cortar partes seleccionadas, las líneas son las siguientes:

  • -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.

Puede usar una y solo una de las opciones enumeradas anteriormente.

Otras opciones son:

  • -d (--delimiter ) - Especifique un delimitador que se utilizará en lugar del delimitador predeterminado "TAB".
  • --complement - Complementar la selección. Al usar esta opción cut muestra todos los bytes, caracteres o campos excepto los seleccionados.
  • -s (--only-delimited ) - Por defecto cut imprime las líneas que no contienen ningún carácter delimitador. Cuando se usa esta opción, cut no imprime líneas que no contienen delimitadores.
  • --output-delimiter - El comportamiento predeterminado de cut es utilizar el delimitador de entrada como delimitador de salida. Esta opción le permite especificar una cadena delimitadora de salida diferente.

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

La LIST argumento pasado a -f , -b y -c las opciones pueden ser un número entero, varios números enteros separados por comas, un rango de números enteros o varios rangos de números enteros separados por comas. Cada rango puede ser uno de los siguientes:

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

Cómo cortar por campo #

Para especificar los campos que se deben cortar, invoque el comando con -f opción. Cuando no se especifica, el delimitador predeterminado es "TAB".

En los ejemplos siguientes, utilizaremos el siguiente archivo. Los campos están separados por tabulaciones.

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

Por ejemplo, para mostrar el primer y el tercer campo, usaría:

cut test.txt -f 1,3
245:789	M:4540
535:763	M:3476

O si desea mostrar del 1.er al 4.º campo:

cut test.txt -f -4
245:789	4567	M:4540	Admin
535:763	4987	M:3476	Sales

Cómo cortar basado en un delimitador #

Para cortar en función de un delimitador, invoque el comando con -d opción, seguida del delimitador que desea usar.

Por ejemplo, para mostrar los campos 1 y 3 usando ":" como delimitador, escribiría:

cut test.txt -d ':' -f 1,3
245:4540	Admin	01
535:3476	Sales	11

Puede utilizar cualquier carácter único como delimitador. En el siguiente ejemplo, usamos el carácter de espacio como delimitador e imprimimos 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 --complement opción. Esto imprimirá solo aquellos campos que no estén seleccionados con -f opción.

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, utilice --output-delimiter opción. Por ejemplo, para establecer el delimitador de salida en _ usarías:

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 tiene 8 bits y puede representar 256 valores diferentes. Cuando se estableció el estándar ASCII, se tomaron en cuenta todas las letras, números y símbolos necesarios para trabajar con el 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 accesibles a nivel mundial, las empresas de tecnología comenzaron a introducir nuevas codificaciones de caracteres para diferentes idiomas. Para los idiomas que tienen más de 256 caracteres, no fue posible una asignación simple de 1 a 1. Esto genera 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 se representan con 1 byte. Los caracteres se pueden representar con 1 byte a 4 bytes.

El -b (--bytes ) le dice al comando que corte secciones de cada línea especificada por posiciones de byte dadas.

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

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 cut incluido en GNU coreutils no tiene una opción para cortar por caracteres. Cuando se usa -c opción, cut se comporta igual que cuando se usa -b opción.

Ejemplos de corte #

El cut El comando generalmente se usa en combinación con otros comandos a través de tuberías. Estos son algunos ejemplos:

Obtener una lista de todos los usuarios #

La salida de getent passwd el comando se pasa a cut , que imprime el primer campo usando : como delimitador.

getent passwd | cut -d ':' -f1

El resultado muestra una lista de todos los usuarios del sistema.

Ver los 10 comandos más utilizados #

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

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

Conclusión #

cut El comando se usa para mostrar campos seleccionados de cada línea de archivos dados o la entrada estándar.

Aunque muy útil, cut tiene algunas limitaciones. No admite especificar más de un carácter como delimitador y no admite múltiples delimitadores.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. comando linux mv

  2. Linux du comando

  3. Comando IP de Linux

  4. Comando cd de linux

  5. pegar ejemplos de comandos en Linux

Comando de tipo Linux

Comando W en Linux

Al mando en Linux

Comando Df en Linux

Cortar comando en Linux

Usando cut en Linux Terminal