Cut (Unix)
comando de Unix De Wikipedia, la enciclopedia libre
Remove ads
comando de Unix De Wikipedia, la enciclopedia libre
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:
-b rango
).-c rango
),-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.
La invocación del comando cut se realiza de la siguiente forma:
cut opciones [ARCHIVO]
Donde las opciones son:
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.
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.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.