GNU/Linux >> Tutoriales Linux >  >> Linux

Comando de corte de Linux explicado con 6 ejemplos

Introducción

El cut command es una utilidad de línea de comandos que le permite cortar secciones de un archivo específico o canalizar datos e imprimir el resultado en una salida estándar. El comando corta partes de una línea por campo, delimitador, posición de byte y carácter.

En este tutorial, aprenderá qué es el cut cuál es el comando y cómo usarlo.

Requisitos previos

  • Un sistema que ejecuta Linux.
  • Acceso a una terminal.

cortar sintaxis del comando

El cut El comando toma la siguiente sintaxis:

cut [option] [file]

Opciones

Especificando un [option] es necesario. De lo contrario, el comando genera un error. Las opciones disponibles se describen en la siguiente sección.

Archivo

Para [file] , ingrese el nombre del archivo que desea procesar. No especificar un nombre de archivo instruye al cut comando para leer desde la entrada estándar, en cuyo caso cut filtra la tubería. Si especifica varios nombres de archivo, el cut El comando concatena el contenido solicitado.

Opciones de comando de corte

El cut Las opciones de comando proporcionan instrucciones sobre cómo usar un delimitador, cortar por posición de byte, campo o carácter. Use una sola opción para cada cut comando que ejecutas.

Las opciones disponibles son:

El -f , b y -c las opciones toman la LIST argumento, que es uno de los siguientes:

  • Un número entero N que representa un byte, campo o carácter, a partir de 1.
  • Enteros múltiples, separados por comas.
  • Un rango de enteros.
  • Múltiples rangos de enteros, separados por comas.

Cada rango puede ser uno de los siguientes:

  • N- - Comienza desde el número entero N (campo, byte o carácter) hasta el final de la línea.
  • N-M - Del entero N hasta entero M , inclusive.
  • -M - Desde el primer campo, byte o carácter, hasta el M especificado campo, byte o carácter.

Ejemplos de corte de Linux

A continuación se muestran los cut más comunes casos de uso de comandos.

Importante: Preste atención a la configuración regional del resultado del archivo/comando que está procesando. Cortar caracteres o bytes en un idioma que no sea inglés puede producir una salida incorrecta si el carácter en cuestión es más largo que un byte.

Cortar por bytes

El -b La opción le permite extraer datos usando bytes. La sintaxis es:

cut -b [LIST] [file]

El [LIST] argumento son los bytes a extraer de cada línea de [file] .

Según lo que desee extraer, puede cortar un solo byte, varios bytes o un rango de bytes. Para cortar desde un archivo específico, especifique el nombre del archivo al final del comando. Por ejemplo, usaremos employees.txt para probar:

Para extraer el primer byte de cada línea de entrada, ejecute:

cut -b 1 employees.txt

El comando imprime solo el primer byte de cada línea de entrada del archivo.

El siguiente ejemplo muestra cómo conectarse al comando who y extraer los primeros 5 bytes de la salida:

who | cut -b -5

Cortar por Personajes

Para cortar por caracteres, especifique el -c opción. Cortar por caracteres es similar a cortar por bytes, excepto que necesita especificar la posición del carácter en lugar de la posición del byte. La sintaxis es:

cut -c [LIST] [file]

El [LIST] El argumento especifica los caracteres que se extraerán de cada línea de [file] .

Por ejemplo:

cut -c 10- employees.txt

El comando extrae todo desde el carácter 10 hasta el final de la línea de cada línea de employees.txt . Los resultados se imprimen en salida estándar.

El siguiente ejemplo muestra el resultado cuando no se especifica un archivo y cut lee su entrada desde la entrada estándar. Echa un vistazo a who salida del comando:

El resultado indica que un usuario está conectado actualmente. Use el cut comando para extraer el nombre de usuario del usuario que ha iniciado sesión desde who salida del comando:

who | cut -c 1-8

En el ejemplo anterior, instruimos a cut para extraer los caracteres del 1 al 8 de cada línea de entrada. En caso de resultados múltiples, ordene los resultados agregando el comando con | sort .

Además, use cut para extraer múltiples caracteres diferentes de una línea. Por ejemplo, muestre el nombre de usuario y la hora de inicio de sesión de todos los usuarios que iniciaron sesión:

who | cut -c 1-8,18-

Corte basado en un delimitador

Si los campos no están separados por el carácter de tabulación predeterminado, use -d opción para especificar un delimitador diferente. Eso significa que el carácter especificado después de -d opción se considera el separador en las líneas. La sintaxis es:

cut -d[delimiter] [file]

En lugar de [delimiter] argumento, especifique el delimitador que desee. Puede utilizar cualquier carácter como delimitador. Usando el cut comando para extraer campos de un archivo sin especificar el -d opción significa que el delimitador predeterminado es el carácter de tabulación .

En el siguiente ejemplo, usamos espacios en blanco como delimitador e imprimimos el segundo campo:

echo "phoenixNAP is a global IT services provider" | cut -d ' ' -f 2

Cortar por Campos

Al canalizar comandos cuya salida no tiene un formato fijo (por ejemplo, who comando), el -c La opción no es útil. Usando el -f la opción de separar por campos es una mejor opción en ese caso.

Por ejemplo:

cut -f 2 employees.txt

En el ejemplo anterior, usamos -f opción para extraer el segundo campo del employees.txt archivo.

Para cortar campos específicos de un archivo, especifique un delimitador diferente. Por ejemplo, /etc/passwd la salida del archivo contiene todos los usuarios en su sistema, números de identificación, directorio de inicio, etc.

Los datos en el /etc/passwd el archivo no está alineado de la misma manera que los datos en who salida de comando. Por lo tanto, no puede extraer todos los usuarios del sistema confiando en el número de carácter.

Sin embargo, los campos en /etc/passwd archivo están delimitados por dos puntos. Por lo tanto, cuente el número de dos puntos para extraer los mismos campos. Por ejemplo:

cut -d: -f1,6 /etc/passwd

La salida devuelve cada usuario en el sistema y su directorio de inicio, correspondiente a los campos 1 y 6, respectivamente.

Complementar una selección

El --complement La opción imprime todo excepto el carácter/byte/campo en la posición especificada. Por ejemplo, el siguiente comando imprime todos los campos excepto el primero y el tercero:

cut employees.txt -f 1 --complement

Especifique un delimitador de salida

Al especificar múltiples caracteres/bytes/campos, el cut El comando concatena la salida sin un delimitador. Especifique un delimitador en la salida usando --output-delimiter opción.

Por ejemplo, para establecer el delimitador de salida en _ (guion bajo), use:

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

Linux
  1. Comando de apagado de Linux explicado con ejemplos

  2. Comando nslookup de Linux explicado con ejemplos

  3. Comando Traceroute de Linux, explicado con ejemplos

  4. Comando JQ en Linux con ejemplos

  5. cortar ejemplos de comandos en Linux

Comando de espera en Linux explicado con ejemplos

Comando Tr en Linux explicado con ejemplos

w Comando explicado con ejemplos en Linux

Comando Linux Cat explicado con ejemplos

Explicación del comando tee de Linux (con ejemplos)

Explicación del comando csplit de Linux (con ejemplos)

    Opción Descripción
    -f (--fields=LIST) Seleccione usando un campo específico, un conjunto de campos o un rango de campos.
    -b (--bytes=LIST) Seleccione usando un byte específico, un conjunto de bytes o un rango de bytes.
    -c (--characters=LIST) Seleccione usando un carácter específico, un conjunto de caracteres o un rango de caracteres.
    -d (--delimiter) Se usa para especificar un delimitador para usar en lugar del delimitador TAB predeterminado.
    --complement Cuando se especifica, esta opción instruye a cut para mostrar todos los bytes, caracteres o campos, excepto los seleccionados.
    -s (--only-delimited) La configuración predeterminada es imprimir las líneas que no contienen caracteres delimitadores. Especificando el -s La opción indica a cut que no imprima las líneas que no contienen delimitadores.
    --output-delimiter De forma predeterminada, cut utiliza el delimitador de entrada como delimitador de salida. Especificando el --output-delimiter La opción le permite especificar un delimitador de salida diferente.