GNU/Linux >> Tutoriales Linux >  >> Linux

50 comandos de corte de Linux simples y útiles en Unix con ejemplos

El comando de corte se usa para cortar secciones del flujo de entrada estándar o archivos de datos utilizando la utilidad de corte de Unix. Es parte del paquete GNU Coreutils y del sistema base BSD, por lo tanto, está disponible en todos los sistemas Linux y BSD de forma predeterminada. El comando de corte en Unix permite cortar secciones en función de posiciones de bytes, caracteres o campos separados por un delimitador como los caracteres '-' o ':'. Nuestra guía proporciona una introducción práctica al comando cut de Linux utilizando un conjunto de ejemplos bien seleccionados. Pruébelos mientras lee esta publicación para obtener experiencia de primera mano.

Ejemplos del comando Cut de Linux en Unix

Nuestros expertos han hecho todo lo posible para que esta guía sea amigable para los nuevos usuarios de Linux. Además, servirá como un práctico punto de referencia para usuarios experimentados por igual. Alentamos a los lectores a probar los comandos a medida que los exploran. Demostraremos estos comandos de Linux Cut utilizando tanto la entrada estándar como un archivo de referencia. Puede copiar y pegar el contenido del archivo desde aquí y crearlo en su sistema.

Archivo de referencia utilizado con fines de demostración

Estamos usando un archivo de texto llamado test.txt que reside en el directorio de inicio. El archivo contiene cinco filas o líneas, todas con cuatro columnas. Cada fila incluye el nombre de un país, su capital, moneda y población; todos separados por dos puntos delimitadores. Cree este archivo en su sistema y llénelo con el contenido a continuación.

France: Paris: Euro: 65 million
Austria: Vienna: Euro: 8 million
Turkey: Ankara: Lira: 79 million
Belgium: Brussels: Euro: 11 million
Japan: Tokyo: Yen: 126 million

Sintaxis del comando Cortar en Unix

El comando de corte de Linux tiene la siguiente sintaxis.

cut OPTION... [FILE]...

La OPCIÓN s incluyen b para (corte basado en bytes), f (campo), c (personaje), d (delimitador), complemento y –delimitador de salida . ARCHIVO es el nombre del archivo. También mostraremos cómo funciona el corte con el flujo de entrada estándar.

- -

Para cortar texto del flujo de entrada, usaremos el comando echo y canalizaremos (|) su salida al comando de corte. Se puede usar el mismo método para proporcionar la entrada de corte desde cat.

Cortar texto basado en posiciones de bytes

La opción b proporcionada por la utilidad de corte nos permite cortar secciones de un texto en función de sus posiciones de byte. Necesitamos usar el comando de corte con el indicador -b seguido de los números de byte para este propósito.

1. Cortar solo un byte del flujo de entrada

$ echo "cutting text from input" | cut -b 1

El comando anterior hace eco de la cadena “cortar texto de la entrada” a la salida estándar y lo canaliza como una entrada al comando de corte. El comando de corte cortará solo el primer byte (c ) de esta cadena ya que solo se proporcionó 1 con -b bandera.

2. Cortar bytes específicos del flujo de entrada

$ echo "cutting text from input" | cut -b 1,3

Este comando solo cortará el primer y tercer byte de la cadena “cortando texto de la entrada” y mostrará “ct ” como su salida. Pruébelo con algunas posiciones de bytes diferentes.

3. Cortar rango de bytes del flujo de entrada

$ echo "cutting text from input" | cut -b 1-12

El comando anterior cortará el rango de bytes 1-12 de la cadena dada e imprimirá “texto de corte” en la salida estándar. Proporcionar rangos de bytes que están fuera de la ocupación de la cadena dará como resultado un mensaje que muestra “cortar:byte no válido o rango de caracteres” .

4. Cortar solo un byte del archivo de texto

$ cut -b 1 test.txt

Este comando mostrará solo los primeros bytes de cada una de las cinco filas dentro del archivo test.txt . Es equivalente al comando $ cat test.txt | cortar -b 1

5. Cortar bytes específicos del archivo de texto

$ cut -b 1,3 test.txt

El comando anterior corta solo el primer y tercer byte de cada fila. Puede especificar cualquier número de bytes siempre que se encuentre dentro del rango de bytes disponibles.

6. Cortar rango de bytes del archivo de texto

$ cut -b 1-12 test.txt

Este comando generará del primero al duodécimo byte de cada fila en el test.txt expediente. Debería notar la similitud de la funcionalidad que posee este comando con el tercer comando.

7. Cortar los primeros 7 bytes en orden alfabético

$ cut -b 1-7 test.txt | sort

Podemos proporcionar la salida del comando cortar como entrada al comando ordenar para mostrar los primeros siete bytes de cada fila alfabéticamente. Para ordenar alfabéticamente, el comando ordenar no requiere ninguna opción.

8. Cortar los primeros 7 bytes en orden inverso

$ cut -b 1-7 test.txt | sort -r

Este comando de corte cortará los primeros 7 bytes de cada fila y los generará en el orden inverso. Mire cómo la salida del comando de corte se envía al comando de clasificación usando una tubería.

9. Cortar desde el quinto byte hasta el final del flujo de entrada

$ echo "cutting text from input" | cut -b 5-

El comando de corte anterior cortará el texto desde el quinto byte hasta el final de la cadena. Este comando será útil cuando necesite cortar desde una posición de byte específica hasta el final del flujo de entrada. Simplemente cambie el valor de la bandera b mientras mantiene activado el final.

10. Cortar desde el quinto byte hasta el final del archivo

$ cut -b 5- test.txt

Este comando comenzará a cortar cada una de las cinco filas de test.txt desde la posición del quinto byte y finaliza solo después de que finalice cada fila. El guión final (-) es obligatorio para esta operación.

11. Cortar una cantidad específica de bytes a partir del primero

$ echo "cutting text from input" | cut -b -5

Este comando cortará los primeros cinco bytes de la cadena de entrada. Puede cortar desde el byte inicial a cualquier otra posición de byte simplemente reemplazando el valor de la bandera b. Recuerde agregar el guión anterior (-), de lo contrario, la salida no será la esperada.

12. Cortar desde el primer byte hasta una posición específica del archivo

$ cut -b -5 test.txt

El comando anterior cortará solo los primeros cinco bytes de cada línea de nuestro archivo de texto. Observe cómo se usa el guión (-) para los comandos 9-12 en esta lista.

Cortar texto basado en caracteres

El comando de corte en Unix permite a los usuarios cortar una sección de texto en función de los caracteres. Cuando maneje tareas de procesamiento de archivos grandes, deberá hacerlo con bastante frecuencia. Pruébelos y observe las similitudes entre el corte basado en caracteres y el corte basado en bytes.

13. Cortar solo un carácter del flujo de entrada

$ echo "cutting text from input" | cut -c 1

El comando anterior corta el primer carácter de la entrada estándar y lo muestra en la terminal. En este caso, es “c “. Cambie su cadena a algo diferente para entender esto claramente.

14. Cortar caracteres específicos del flujo de entrada

$ echo "cutting text from input" | cut -c 1,3

Este comando cortará solo el primer y tercer carácter de la cadena de entrada y los mostrará. Puede intentar cortar otros caracteres, pero recuerde no exceder el límite de caracteres de su cadena.

15. Cortar rango de caracteres del flujo de entrada

$ echo "cutting text from input" | cut -c 1-12

En el caso de este comando, "cortar" cortará los caracteres que van desde la primera posición hasta la duodécima posición. El resultado será “cortando texto “. Tenga en cuenta las similitudes entre este comando de corte de Linux y el tercer comando.

16. Cortar solo un carácter del archivo de texto

$ cut -c 1 test.txt

Este comando mostrará solo los primeros caracteres de cada una de las cinco filas de nuestro archivo test.txt. Es equivalente al comando $ cat test.txt | cut -c 1 y proporciona el mismo resultado que obtendríamos al usar el indicador de byte.

17. Cortar caracteres específicos del archivo de texto

$ cut -c 7,10 test.txt

El comando anterior corta solo los caracteres séptimo y décimo de cada cinco filas. Puede especificar cualquier posición de carácter siempre que esté dentro del rango de caracteres disponibles.

18. Cortar Rango de Caracteres del Archivo de Texto

$ cut -c 1-12 test.txt

Este comando generará del primero al duodécimo carácter de cada línea en el test.txt expediente. El comando de corte en Unix se comporta de la misma manera al cortar un rango de caracteres y un rango de bytes.

19. Cortar los primeros 5 caracteres en orden alfabético

$ cut -c 1-5 test.txt | sort

Puede proporcionar la salida del comando de corte como entrada al comando de clasificación para cortar los primeros cinco bytes de cada fila alfabéticamente. El comando ordenar no requiere ninguna opción al ordenar alfabéticamente.

20. Corta los primeros 5 caracteres en orden inverso

$ cut -c 1-5 test.txt | sort -r

Este comando de corte cortará los primeros cinco caracteres de cada fila y los mostrará después de ordenarlos al revés. Mire cómo la salida del comando de corte se envía al comando de clasificación usando una tubería.

21. Cortar desde el quinto carácter hasta el final del flujo de entrada

$ echo "cutting text from input" | cut -c 5-

El comando de corte anterior cortará el texto desde el quinto byte hasta el final de la cadena. Puede ser beneficioso cuando necesita cortar desde una posición de carácter específica hasta el final del flujo de entrada. Simplemente cambie el valor después de b mientras mantiene activado el final.

22. Cortar desde el quinto carácter hasta el final del archivo

$ cut -c 5- test.txt

Este comando comenzará a cortar cada una de las cinco filas del archivo test.txt desde la posición del quinto carácter y terminará después de llegar al final de cada línea. El guión final (-) es obligatorio para este tipo de operación.

23. Cortar una cantidad específica de caracteres a partir de la primera posición

$ echo "cutting text from input" | cut -c -5

Este comando solo cortará las primeras cinco posiciones de caracteres de nuestra entrada. Puede cortar desde el carácter inicial a cualquier otra posición de carácter simplemente sustituyendo el valor -c . Recuerde agregar el guión anterior (-), de lo contrario, el resultado no será el mismo que esperaba.

24. Cortar desde el primer carácter hasta una posición específica del archivo

$ cut -c -5 test.txt

Este comando de corte en Unix cortará los primeros cinco caracteres de cada línea del archivo test.txt. Observe cómo se usa el guión (-) para los comandos 21-24 en esta lista.

Cortar texto de columnas usando campos y delimitadores

El comando de corte permite a los usuarios cortar secciones de un texto muy fácilmente. Para esto, necesitamos usar las banderas de corte d y f. La bandera d representa delimitadores y f para campos. Los delimitadores son caracteres especiales que separan una sección de un texto de otras. Los ejemplos comunes incluyen '-', ':' y ” ” (espacio). El archivo de referencia que estamos usando tiene ':' como separador.

25. Cortar la primera sección del flujo de entrada

$ echo "Let's cut this input stream section by section" | cut -d ' ' -f 1

El comando de corte anterior cortará la primera sección de texto (“Vamos” en este caso) del flujo de entrada. Tenga en cuenta que el valor de la bandera delimitadora -d es un solo espacio. Pruébelo con texto delimitado por dos puntos y vea qué sucede usted mismo.

26. Cortar la primera sección de un archivo

$ cut -d ':' -f 1 test.txt

Este comando devolverá las primeras columnas de cada fila dentro de nuestro archivo de referencia e imprimirá el nombre de los cinco países. El valor proporcionado al marcador delimitador fue dos puntos porque así es como nuestro archivo separa las columnas.

27. Cortar secciones específicas del flujo de entrada

$ echo "Let's cut this input stream section by section" | cut -d ' ' -f 1,2,3

Aquí le indicamos a cut que muestre solo los primeros tres campos de la cadena de entrada dada. Se realiza utilizando una matriz de posiciones de campo separadas por comas. La salida de este comando será 'Cortemos esto ‘.

28. Cortar secciones específicas de un archivo

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

Este comando también proporcionará el mismo tipo de salida que el comando anterior. Aquí, cortar solo está trabajando en un archivo en lugar de la entrada estándar, eso es todo. Debe mostrar el nombre, capital y moneda de cada país en la lista. Sin embargo, observe la diferencia entre sus delimitadores (espacio frente a dos puntos).

29. Cortar rango de campos del flujo de entrada

$ echo "Let's cut this input stream section by section" | cut -d ' ' -f 1-5

El comando anterior cortará los primeros cinco campos de la cadena y los mostrará en la terminal. Los apóstrofes son obligatorios cuando se utiliza un espacio como delimitador entre varios campos.

30. Cortar rango de campos de un archivo

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

Este comando de corte cortará cada una de las tres primeras columnas de nuestro archivo de texto y lo mostrará como salida. Debería mostrar el mismo resultado proporcionado por el comando que precede al anterior. Los apóstrofes no son obligatorios para caracteres como – o :.

31. Corte cada entrada de un campo específico y enumérelas alfabéticamente

$ cut -d ':' -f 1 test.txt | awk '{print $1}' | sort

Suponga que necesita encontrar los nombres de los cinco países en nuestra lista en orden alfabético, puede utilizar el comando anterior para hacer esto. Enumerará los países ordenados alfabéticamente. Una sustitución en el valor de la bandera f le permitirá hacer esto en otros campos por igual.

32. Corte cada entrada de un campo y enumérelas en orden alfabético inverso

$ cut -d ':' -f 1 test.txt | awk '{print $1}' | sort -r

Este comando hace la misma operación que el anterior, solo ordena las entradas de manera inversa, eso es todo. La salida se cambia aquí debido a -r indicador pasado para ordenar.

33. Cortar desde un campo fijo hasta el final del flujo de entrada

$ echo "Let's cut this input stream section by section" | cut -d ' ' -f 2-

Este comando de corte cortará desde el segundo campo hasta el final de la cadena. Puede ser beneficioso cuando necesite cortar desde una posición específica hasta el final de la entrada. Puede cambiar el valor de -f mientras mantiene el seguimiento activado para cortar desde diferentes campos.

34. Cortar desde un campo fijo hasta el final de un archivo

$ cut -d ':' -f 2- test.txt

Cuando se usa así, el comando de corte comenzará a cortar desde el campo especificado e irá hasta el final de cada línea. En este caso, imprimirá la capital, la moneda y la población de cada uno de los cinco países de la lista.

35. Cortar un número específico de columnas a partir de la primera

$ echo "Let's cut this input stream section by section" | cut -d ' ' -f -5

Este comando solo cortará los primeros cinco campos de la entrada dada. Puede cortar desde la columna inicial a cualquier otra posición de columna simplemente sustituyendo el valor -f. Sin embargo, debe agregar el guión anterior (-), de lo contrario, el resultado no coincidirá con sus expectativas.

36. Cortar algunas columnas específicas de un archivo a partir de la primera

$ cut -d ':' -f -2 test.txt

Este comando de corte de Linux comenzará a cortar nuestro archivo test.txt desde la primera columna y terminará después de que haya terminado de cortar el segundo comando. Entonces, la salida de este comando simplemente mostrará el nombre de cada país y sus respectivas capitales.

37. Cortar varios campos de archivos CSV

$ cut -d ',' -f 1,2 file.csv

El comando de corte a menudo demostrará ser una herramienta viable cuando trabaje con documentos CSV masivos. El comando anterior, por ejemplo, cortará las dos primeras columnas de un archivo CSV separado por comas llamado file.csv.

38. Corte campos específicos de archivos CSV y ordénelos en orden inverso

$ cut -d ',' -f 1,3,5 file.csv | sort -r

El comando anterior cortará la primera, tercera y quinta columnas de un archivo CSV separado por comas llamado file.csv y mostrará el resultado en el orden inverso.

Algunos Comandos Misceláneos de Corte de Linux para Expertos

El comando de corte se puede usar para el procesamiento avanzado de archivos utilizándolo con los filtros apropiados y otros comandos robustos de Linux. A continuación, veremos algunos de estos comandos que pueden beneficiarlo a largo plazo.

39. Inspeccione el archivo passwd usando el comando Cortar

$ cut -d ':' -f1 /etc/passwd

El archivo passwd almacenado dentro de /etc en la mayoría de los sistemas contiene información muy confidencial sobre el sistema y sus usuarios. Puede inspeccionar este archivo rápidamente usando el comando de corte. El delimitador ':' se usa ya que las columnas de este archivo se separan usándolo. Cambiar el valor de -f para monitorear diferentes campos.

40. Cortar campos específicos y mostrar solo las entradas únicas

$ cut -d ':' -f 3 test.txt | uniq -u

Este comando de corte en Linux cortará la tercera columna del archivo test.txt y solo mostrará las entradas únicas. Entonces, para este archivo, la salida contendrá solo tres monedas, a saber, euro, lira y yen.

41. Cortar todos los bytes del flujo de entrada excepto los especificados

$ echo "Let's cut this input stream section by section" | cut -b 1,3,5,7 --complement

Este comando de corte cortará todos los caracteres de la cadena de entrada dada, excepto los proporcionados a -b . Por lo tanto, las posiciones de byte primero, tercero, quinto y séptimo se omitirán de la salida.

42. Cortar todos los bytes de un archivo excepto los especificados

$ cut -b 2,4,6 test.txt --complement

Cuando se usa de esta manera, el comando de corte cortará todos los bytes del archivo test.txt excepto el mencionado en el comando. Por lo tanto, la salida no contendrá el segundo, cuarto y sexto byte de cada línea.

43. Cortar todos los caracteres del flujo de entrada excepto los especificados

$ echo "Let's cut this input stream section by section" | cut -c 1,3,5,7 --complement

Este comando se abstiene de cortar los caracteres primero, tercero, quinto y séptimo de la cadena de entrada y, en su lugar, corta todos los demás caracteres excepto estos cuatro.

44. Cortar todos los caracteres de un archivo excepto los especificados

$ cut -c 2,4,6 test.txt --complement

En el caso de este comando, la salida contendrá todos los caracteres de los archivos test.txt excepto los mencionados. Por lo tanto, los caracteres segundo, cuarto y sexto no se mostrarán.

45. Cortar todas las secciones de entrada excepto las especificadas

$ echo "Let's cut this input stream section by section" | cut -d ' ' -f 1,3,5 --complement

El comando anterior generará la cadena "cortar entrada sección por sección “. Por lo tanto, mostrará todas las secciones de entrada sin las mencionadas después de la marca de campo.

46. Cortar todas las columnas de un archivo excepto las especificadas

$ cut -d ':' -f 2,3 test.txt --complement

Este comando cortará solo la primera y la última columna del archivo test.txt . Por lo tanto, puede anular fácilmente la selección de algunos campos al procesar documentos tabulares grandes utilizando el indicador de complemento.

47. Corta una sección de entrada e inviértela por caracteres

$ echo "Let's cut this input stream section by section" | rev | cut -d ' ' -f 1,3

El comando de Linux anterior cortará la primera y la tercera sección de la entrada y las invertirá en caracteres. Observe cómo la salida de un comando se alimenta como la entrada de otros comandos.

48. Corte columnas específicas en un archivo e inviértalas por caracteres

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

Este comando solo cortará los campos especificados del archivo test.txt y mostrará el resultado de forma inversa a los caracteres.

49. Modificar el delimitador de salida del comando Cortar

$ echo "A,comma,separated,list,for,demonstration,purposes" | cut -d ',' -f 1- --output-delimiter=' '

Cut nos permite modificar el delimitador de salida a la hora de mostrar el resultado. El comando anterior corta todas las secciones de la lista separada por comas pero reemplaza las comas con espacios al mostrar el resultado.

50. Ejemplo de comando Cortar+Sed con delimitador de tabulación

$ sed 's/:/\t/g' test.txt | cut -f 1-4

El último comando de corte de nuestra lista utiliza la poderosa utilidad sed para reemplazar los dos puntos en nuestro archivo con tabulaciones. Puede reemplazar \t con algunos otros caracteres como – o; para cambiar a un delimitador de salida de su elección.

Pensamientos finales

El comando de corte en Unix es una herramienta versátil que puede brindar numerosos beneficios a los usuarios que necesitan procesar archivos grandes con frecuencia. Hemos esbozado los 50 mejores comandos de corte de Linux para ayudarlo a familiarizarse con esta fantástica utilidad. Debe probarlos individualmente y realizar modificaciones en las distintas opciones disponibles. Eso lo ayudará a comprender en profundidad las diferentes variaciones del comando de corte. Con suerte, hemos tenido éxito en nuestra búsqueda para ayudarlo tanto como sea posible. Quédese con nosotros para obtener más guías próximas sobre comandos útiles de Linux.


Linux
  1. Comando wc Linux con ejemplos

  2. Comando de clasificación de Linux con ejemplos

  3. Comando JQ en Linux con ejemplos

  4. Los comandos de Linux más simples con 10 ejemplos

  5. cortar ejemplos de comandos en Linux

15 comandos ps de Linux con ejemplos

Comando modprobe de Linux con ejemplos útiles

Comando pwd en Linux con ejemplos útiles

Comando SS en Linux con ejemplos útiles

50 ejemplos simples y útiles del comando Buscar en Linux

16 Ejemplos Prácticos y Útiles del Comando Echo en Linux