For faster navigation, this Iframe is preloading the Wikiwand page for Cut (Unix).

Cut (Unix)

cut es un comando usado para la extracción de segmentos (o porciones) de las líneas de texto, provenientes de un archivo o bien de la entrada estándar (stdin). Actualmente forma parte del paquete GNU coreutils y del Sistema Base de BSD. Su primera aparición fue en el UNIX System III en 1982.[1]

Se pueden determinar los segmentos de texto a extraer, indicándolos como un rango de alguna de las siguientes maneras:

  • Bytes (-b rango).
  • Caracteres (-c rango),
  • Campos (-f rango) separados por un delimitador (-d, donde el tabulador es el default).

El rango puede ser indicado usando alguno de los siguientes formatos: N, N-M, N- (desde N hasta el final de la línea), o -M (desde el comienzo de la línea hasta M), donde los valores de N y M comienzan a partir de 1, y N es menor que M. El comando cut permite indicar más de un rango, separando uno del otro, utilizando una coma (,): rango1,rango2,etc.


Modo de uso

[editar]

La invocación del comando cut se realiza de la siguiente forma:

 cut opciones [ARCHIVO]

Donde las opciones son:

-b rango/s
Selecciona los bytes indicados en el o los rangos. También puede indicarse con el parámetro --bytes=rango/s.
-c rango/s
Selecciona los caracteres indicados en el o los rangos. También puede indicarse con el parámetro --characters=rango/s.
-f rango/s
Selecciona los campos (columnas) indicadas en el o los rangos, que se encuentran delimitadas por el carácter Tabulador. También puede indicarse con el parámetro --fields=rango/s. En caso de que una línea no posea el delimitador, esta se muestra en su totalidad, salvo que se utilice el parámetro -s.
-d caracter_delimitador
Especifica el carácter delimitador de los campos, en el caso de que se utilice el parámetro -f. Es posible indicarlo usando --delimiter=caracter_delimitador. En caso de que no se use dicho parámetro el tabulador actúa como delimitador por defecto.
-s
Indica que las líneas que no posean el delimitador (o separador) no sean mostradas.
--complement
Establece que los rangos indicados en alguna de las opciones -b, -c o -f no son deseados, por lo tanto se muestra el resto que se encuentra excluido.
--output-delimiter=cadena_de_texto
Indica que los campos, al ser mostrados en pantalla, sean separados por la cadena de texto indicada.

En cada invocación de cut, solo es posible elegir una de las maneras de segmentar las líneas de un texto. Esto limita al usuario a optar por un único parámetro entre los siguientes: -b, -c o -f.


Ejemplos

[editar]

A continuación se listan una serie de ejemplos asumiendo que existe un archivo, llamado archivo.txt, con la siguiente información:

dato1:dato2:dato3:dato4
uno:dos:tres:cuatro:cinco:seis:siete
a:b:c:d:e:f:g:h:i:j:k
El sistema operativo Linux es muy productivo.

Para imprimir en pantalla desde el cuarto hasta el de vigésimo carácter de cada línea:

$ cut -c 4-20 archivo.txt

Y la salida correspondiente es:

o1:dato2:dato3:da
:dos:tres:cuatro:
:c:d:e:f:g:h:i:j:
sistema operativo


Para imprimir en pantalla el tercer y cuarto campo, delimitados por el signo ":" (dos puntos) y que los muestre separados por la cadena "; " (punto y coma junto a un espacio) :

$ cut -f 3-4 -d":" --output-delimiter="; " archivo.txt

Y la salida correspondiente es:

dato3; dato4
tres; cuatro
c; d
El sistema operativo Linux es muy productivo.

Nota: la última línea al no poseer el delimitador ":", es mostrada en su totalidad.


Para imprimir en pantalla desde el comienzo de la línea hasta el segundo campo, delimitados por el signo ":" (dos puntos) y que los muestre separados por la cadena " y ", sin incluir a los que no poseen delimitador :

$ cut -f -2 -d":" --output-delimiter=" y " -s archivo.txt

Y la salida correspondiente es:

dato1 y dato2
uno y dos
a y b


Para imprimir en pantalla todo, salvo el rango que va desde el comienzo de la línea hasta el tercer campo, así como también el sexto campo. Dichos campos son delimitados por un espacio, y del resultado que no se incluyan a los que no poseen delimitador:

$  cut --complement -f -3,6 -d" " -s  archivo.txt

Y la salida correspondiente es:

Linux es productivo.

Lo que se hizo en este último ejemplo fue: al indicar que se usa un espacio como delimitador, y agregar el parámetro -s (no incluir las líneas no delimitadas), estamos trabajando con la última línea del ejemplo. Luego se establecieron los rangos a extraer, pero con --complement, decimos que no son deseados, y por lo tanto muestra el resto.

Véase también

[editar]

Referencias

[editar]
{{bottomLinkPreText}} {{bottomLinkText}}
Cut (Unix)
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?