Uso del comando cut con ejemplos

Para extraer determinados caracteres de una o varias líneas delimitándolos por su posición, tenemos el comando cut.

Con cut podemos extraer partes de una línea indicando la posición de bytes y caracteres. También, si indicamos un delimitador, podemos extraer los campo del fichero.

Extraer campos

Para extraer campos con -f (field) debemos indicar un delimitador con -d. Un delimitador puede ser el espacio en blanco (-d » «), dos puntos (-d «:»), punto y coma (-d «;»)… Con -f número indicamos el número del campo a extraer. O de los campos, ya que podemos indicar más de un campo, incluso rangos.

Si queremos extraer la primera palabra de cada verso de un poema, entendiendo que las palabras están separadas por un espacio en blanco, podemos usar:

cut -d " " -f 1 poema.txt

Si lo que queremos es la primera y la tercera palabra de cada verso, indicaremos los campos que queremos extraer separados con comas después del modificador -f:

cut -d " " -f 1,3 poema.txt

Y si queremos un rango, por ejemplo, las tres primeras palabras, en lugar de coma, escribiremos un guión:

cut -d " " -f 1-3 poema.txt

Incluso podemos unir rangos y campos sueltos. Veamos como extraer los campos del 1 al 3 y luego, el campo 6:

cut -d " " -f 1-3,6 poema.txt

O rangos hasta o a partir de un determinado campo. Para mostrar las líneas sin la primera palabra, indicaremos -f 2- para que muestre desde el campo 2 hasta el final:

cut -d " " -f 2- poema.txt

La opción inversa, del comienzo hasta un determinado campo, lo indicaremos con un guión y el número. Por ejemplo, para mostrar desde el comienzo hasta el cuarto campo, haremos:

cut -d " " -f -4 poema.txt

Por defecto, nos va a devolver los campos separados por espacios en blanco, pero podemos modificar esto y que nos devuelva el resultado con otro separador. Lo haremos con –output-delimiter y el separador que queramos.

Si queremos que nos devuelva las tres primeras palabras de cada línea separadas por guiones, escribiremos:

cut -d " " -f 1-3 --output-delimiter "-" poema.txt

Para que devuelva cada palabra en una nueva línea, el delimitador de salida cambia un poco, ya que debe ser –output-delimiter=$’\n’. Queremos las tres primeras palabras de cada verso pero que nos las devuelva cada una en una línea distinta:

cut -d " " -f 1-3 --output-delimiter=$'\n' poema.txt

Extraer caracteres

Además de campos, podemos también extraer caracteres con -c. El formato es muy parecido a -f, pero no hay que indicar el delimitador. Supongamos que queremos el primer carácter de cada línea:

cut -c 1 poema.txt

El carácter 1 y 3:

cut -c 1,3 poema.txt

Los tres primeros caracteres de cada línea:

cut -c 1-3 poema.txt

Equivalente a:

cut -c -3 poema.txt

Y, para mostrar del carácter 3 hasta el final:

cut -c 3- poema.txt

Extraer bytes

Para extraer bytes, el formato es igual que con los caracteres pero, en lugar de usar -c, usaremos -b.

 

 

2 comentarios en «Uso del comando cut con ejemplos»

Deja una respuesta

Tu dirección de correo electrónico no será publicada.