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:
2010:Junio:23:Carla:Martínez:Equipo-de-básquet
2011:Abril:22:Yoel:Alonso:Clases-de-danza
2009:Febrero:21:Bernat:Molina:Equipo-de-básquet
2012:Enero:22:Noelia:Bernabeu:Equipo-de-básquet
2010:Mayo:11:Arnau:Silvestre:Clases-de-judo
2011:Febrero:23:Lucia:Pérez:Clases-de-danza
2013:Mayo:20:Gerard:Reverte:Clases-de-judo
2009:Julio:03:Oriol:López:Clases-de-básquet
2010:Marzo:02:Isaac:Meler:Club-de-ajedrez
2012:Octubre:03:Miquel:Roca:Equipo-de-fútbol-sala
2009:Abril:25:Carmen:Grandes:Clases-de-natación
2014:Diciembre:30:Andrés:Romero:Club-de-ajedrez
2010:Enero:25:Irene:García:Clases-de-danza
2011:Noviembre:22:Isabel:Valle:Equipo-de-fútbol-sala
2010:Mayo:14:María:Segovia:Equipo-de-básquet
Los primero que haremos, será extaer únicamente los nombres y apellidos de los alumnos:
cut -d ":" -f 4,5 ejercicio-cut.txt
Con el resultado:
Carla:Martínez
Yoel:Alonso
Bernat:Molina
Noelia:Bernabeu
Arnau:Silvestre
Lucia:Pérez
Gerard:Reverte
Oriol:López
Isaac:Meler
Miquel:Roca
Carmen:Grandes
Andrés:Romero
Irene:García
Isabel:Valle
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:
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
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:
Carla Martínez
Yoel Alonso
Bernat Molina
Noelia Bernabeu
Arnau Silvestre
Lucia Pérez
Gerard Reverte
Oriol López
Isaac Meler
Miquel Roca
Carmen Grandes
Andrés Romero
Irene García
Isabel Valle
María Segovia
Además podemos utilizar un tercera comando, en este caso SORT, que nos ordenará el listado:
cut -d ":" -f 4,5 --output-delimiter=$'\t' ejercicio-cut.txt | sort
Con el resultado:
Andrés Romero
Arnau Silvestre
Bernat Molina
Carla Martínez
Carmen Grandes
Gerard Reverte
Irene García
Isaac Meler
Isabel Valle
Lucia Pérez
María Segovia
Miquel Roca
Noelia Bernabeu
Oriol López
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:
cat ejercicio-cut.txt | grep ajedrez | cut -d ":" -f 4,5,6 | tr ":" " " | sort
Obteniendo la siguiente información:
Andrés Romero Club-de-ajedrez
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»
echo "En UNIX y en GNU/Linux todo es un fichero" | cut -c 4-7
Con el resultado:
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.