Ejemplos prácticos del comando CUT en Linux

Vamos a ver diferentes ejemplos práticos del comando CUT en sistemas GNU/Linux Dicho comando nos ayudará a trabajar con el contenido de archivos, desde la consola de comandos. Forma parte de la familia de comandos que trabajan con la salida estandard (stdout) de los ficheros, como SED, del que ya hemos hablado o TR.

¿En qué consiste el comando CUT?

Se encarga de cortar las columnas o campos seleccionados de uno o más ficheros. Si no se indica ningún fichero, o si éste es -, se lee la entrada estandard (stdin)

Entre sus usos más habituales se encuentra sacar información de los campos o simplificar ficheros más complejos. Se utiliza de manera asidua en la elaboración de scripts, sobre todo para filtrar un resultado de una consulta o la combinación de un conjunto de comandos.

Ejemplos prácticos del comando CUT

Partimos de la base que tenemos en un documento la información de los alumnos a un club de deportes, con su fecha de nacimiento, nombre, apellido y sección:

  1. 2010:Junio:23:Carla:Martínez:Equipo-de-básquet
  2. 2011:Abril:22:Yoel:Alonso:Clases-de-danza
  3. 2009:Febrero:21:Bernat:Molina:Equipo-de-básquet
  4. 2012:Enero:22:Noelia:Bernabeu:Equipo-de-básquet
  5. 2010:Mayo:11:Arnau:Silvestre:Clases-de-judo
  6. 2011:Febrero:23:Lucia:Pérez:Clases-de-danza
  7. 2013:Mayo:20:Gerard:Reverte:Clases-de-judo
  8. 2009:Julio:03:Oriol:López:Clases-de-básquet
  9. 2010:Marzo:02:Isaac:Meler:Club-de-ajedrez
  10. 2012:Octubre:03:Miquel:Roca:Equipo-de-fútbol-sala
  11. 2009:Abril:25:Carmen:Grandes:Clases-de-natación
  12. 2014:Diciembre:30:Andrés:Romero:Club-de-ajedrez
  13. 2010:Enero:25:Irene:García:Clases-de-danza
  14. 2011:Noviembre:22:Isabel:Valle:Equipo-de-fútbol-sala
  15. 2010:Mayo:14:María:Segovia:Equipo-de-básquet

Los primero que haremos, será extaer únicamente los nombres y apellidos de los alumnos:

  1. cut -d ":" -f 4,5 ejercicio-cut.txt

Con el resultado:

  1. Carla:Martínez
  2. Yoel:Alonso
  3. Bernat:Molina
  4. Noelia:Bernabeu
  5. Arnau:Silvestre
  6. Lucia:Pérez
  7. Gerard:Reverte
  8. Oriol:López
  9. Isaac:Meler
  10. Miquel:Roca
  11. Carmen:Grandes
  12. Andrés:Romero
  13. Irene:García
  14. Isabel:Valle
  15. María:Segovia

Lo que hemos hecho es indicar el delimitador «:» tras el parámetro «-d«, y seleccionar las columnas que queremos utilizar, mediante el parámetro «-f«. En concreto las columnas 4 y 5

Lo que haremos a continuación será sustituir los dos puntos «:», por un espacio o un tabulador, para que la información sea más legible. Esto lo podemos hacer de diferentes maneras. La primera es utilizar el parámetro «–output-delimiter», como se ve en el ejemplo:

  1. cut -d ":" -f 4,5 --output-delimiter=$'\t' ejercicio-cut.txt

Mediante «\t» le decimos que sustituye el valor delimitador «:» por un una tabulación.

La otra opción posible es utilizar otro comando, al que le enviamos la salida standard (stdout), en este caso TR

  1. cut -d ":" -f 4,5 ejercicio-cut.txt | tr -s ':' ' '

Con TR indicamos que vamos a sustituir dos dos puntos, por un espacio, utilizando el parámetro «-s»

En ambos casos el resultado es similar:

  1. Carla Martínez
  2. Yoel    Alonso
  3. Bernat  Molina
  4. Noelia  Bernabeu
  5. Arnau   Silvestre
  6. Lucia   Pérez
  7. Gerard  Reverte
  8. Oriol   López
  9. Isaac   Meler
  10. Miquel  Roca
  11. Carmen  Grandes
  12. Andrés  Romero
  13. Irene   García
  14. Isabel  Valle
  15. María   Segovia

Además podemos utilizar un tercera comando, en este caso SORT, que nos ordenará el listado:

  1. cut -d ":" -f 4,5 --output-delimiter=$'\t' ejercicio-cut.txt  | sort

Con el resultado:

  1. Andrés    Romero
  2. Arnau   Silvestre
  3. Bernat  Molina
  4. Carla   Martínez
  5. Carmen  Grandes
  6. Gerard  Reverte
  7. Irene   García
  8. Isaac   Meler
  9. Isabel  Valle
  10. Lucia   Pérez
  11. María   Segovia
  12. Miquel  Roca
  13. Noelia  Bernabeu
  14. Oriol   López
  15. Yoel    Alonso

Como último ejemplo, en esta parte, puede ser que nos interese que nos muestre información únicamente de los alumnos del «Club de Ajedrez». La podríamos obtener de la siguiente manera:

  1. cat ejercicio-cut.txt | grep ajedrez | cut -d ":" -f 4,5,6 | tr ":" " " | sort

Obteniendo la siguiente información:

  1. Andrés Romero Club-de-ajedrez
  2. Isaac Meler Club-de-ajedrez

En esta ocasión además de los comandos mencionados hasta ahora, también hemos utilizado «cat» para mostrar el contenido de un fichero, y «grep» para visualizar únicamente la información que nos interesa.

Otro uso habitual del comando CUT es que nos muestre un número de carácteres, utilizando el parámetro «-c», como vemos en el ejemplo, de la frase «En UNIX y en GNU/Linux todo es un fichero»

  1. echo "En UNIX y en GNU/Linux todo es un fichero" | cut -c 4-7

Con el resultado:

  1. UNIX

Lo que hacemos es indicar, que queremos que nos muestre los carácteres del 4 al 7.

Y eso es todo, espero que os haya parecido interesante a la par de útil. Nos vamos leyendo.