Como su propio nombre indica, el comando cut tiene la característica de poder cortar caracteres y campos, con la posibilidad de usar delimitadores y otras opciones, para finalmente extraer las partes seleccionadas de cada fichero en la salida estándar.
El comando cut nos ofrece los siguientes argumentos:
-b, –bytes=LISTA muestra solamente estos bytes
-c, –characters=LISTA selecciona solamente estos caracteres
-d, –delimiter=DELIM usa DELIM en vez de caracteres de tabulación para delimitar los campos
-f, –fields=LISTA selecciona solamente estos campos; también muestra cualquier línea que no tenga un carácter delimitador, a menos que se especifique la opción -s
-n (no tiene efecto)
–complement complementa el conjunto de bytes, caracteres o campos seleccionados.
-s, –only-delimited no muestra las líneas que no contienen delimitadores
–output-delimiter=CADENA utiliza CADENA como el delimitador del resultado. Por omisión se utiliza el
delimitador de la entrada
–help muestra esta ayuda y finaliza
–version informa de la versión y finaliza
Vamos a hacer unos ejemplos sencillos, saquemos un texto por pantalla:
$ echo "Esto es una prueba, 1 2 3, probando" Esto es una prueba, 1 2 3, probando
Bien, utilizando como delimitador por ejemplo la coma, podemos dividir en 3 partes el texto, podemos mostar cada una de esas tres partes (fields) con la opción -f
:
$ echo "Esto es una prueba, 1 2 3, probando" | cut -d "," -f 1 Esto es una prueba $ echo "Esto es una prueba, 1 2 3, probando" | cut -d "," -f 2 1 2 3 $ echo "Esto es una prueba, 1 2 3, probando" | cut -d "," -f 3 probando
¿Y si quisieramos sacar solamente unos caracteres en concreto? Usaremos el argumento -c:
$ echo "Esto es una prueba, 1 2 3, probando" | cut -c 1-4 Esto $ echo "Esto es una prueba, 1 2 3, probando" | cut -c 6-8 es $ echo "Esto es una prueba, 1 2 3, probando" | cut -c 9-12 una $ echo "Esto es una prueba, 1 2 3, probando" | cut -c 14-18 rueba $ echo "Esto es una prueba, 1 2 3, probando" | cut -c 13-18 prueba
Esto es lo más básico del comando cut, a partir de aquí ya sabéis, trastear, investigar, revisar la página man y comenzar a utilizarlo junto con otros comandos, en scripts, etc.
Que comandos utilizo si quiero obtener el segundo parrafo de un texto…gracias por la ayudita..
Alex tu ayuda ha sido excelente, por favor sigue compratiendo tu ciencia…
Simplemente espectacular lo suyo !!!!
Consulta… como puedo asignar el valor de un CUT a una Variable, es decir :
cut -c22-34 fichero el retorno de esto lo pueda asignar a una variable en un Script.
Saludos.
Creo que esto es lo que necesitas:
—————————————-
VARIABLE=`cut -c22-34 fichero`
echo $VARIABLE
—————————————-
Saludos
¿como hago si deseo cortar algo de la segunda línea? ejemplo:
línea 1: Esto es una prueba, 1 2 3, probando
línea 2: Otra prueba, 5 6 7, sigo probando
¿ como corto algo de la segunda línea?
Puedes hacerlo con sed, o concatenando sed, awk, cut, etc:
Sed Stream Editor, recopilación de Scripts
https://rm-rf.es/sed-stream-editor-recopilacion-de-scripts/
Saludos
Ando preparando LPIC1, por placer, no por obligación.
Me ha resultado muy úytil el ejemplo de los campos con la opción -f, que no entendía.
Gracias.
Yo numeraría con cat -n, o bien con nl, y haría un pipe del output a cut.
Saludos.
Hola amigo,
me puedes ayudar quiero cortar una parte del comando TOP solo el porcentage usado del CPU pero cuando le doy cut, solo corta la parte de abajo,
porfavor
top – 19:14:04 up 1:44, 2 users, load average: 0.53, 0.45, 0.50
Tasks: 158 total, 1 running, 157 sleeping, 0 stopped, 0 zombie
Cpu(s): 12.2%us, 4.2%sy, 0.1%ni, 82.2%id, 1.4%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2047784k total, 2031056k used, 16728k free, 612080k buffers
Swap: 261116k total, 0k used, 261116k free, 825628k cached
Saludos
y… como se usa????? por favor necesito la resp. lo mas rapido posible!!! gracias!!
como hago para especificar que el delimimtador sea un «enter» ??
Para que un delimitador sea un enter tienes que hacer:
cut -d$’\n’
va de lujo!
Yo también tengo una pregunta:
La variable de entorno IFS se puede usar con el cut??
Perdona, tienes que dejar un espacio entre la d y el $:
cut -d $’\n’
Muy útil. Muchas gracias :)
Que comandos utilizo si quiero obtener el segundo parrafo de un texto…gracias por la ayudita..
Buen dia!
Como puedo hacer para guardar a un txt solo una porcion de linea Ejemplo:
se tiene la siguiente linea
0:8:2:1501290731:00:19:18076074:0:12500::16:7::989:00400008,11:?:17432979:0:3:0:0,1: 759000620013:3230:6:000000:0004::00,1: 759000620013:3230:6:000000:0004:0802:00,2::::1:3230:1:00,1: 759100200031:3020:6:000000:0004::00,1: 759100200031:3020:6:000000:0004:0802:00,2::::1:3020:1:00,11: >>:17432979:31:0:0:0:0:0:0:0,5:11:12500:::00
como hacer para que primero me guarde desde el simbolo ? hasta el >> comtemplando que la longitud, campos o parametros son variables. Quisiera obtener es lo siguientes:
?:17432979:0:3:0:0,1: 759000620013:3230:6:000000:0004::00,1: 759000620013:3230:6:000000:0004:0802:00,2::::1:3230:1:00,1: 759100200031:3020:6:000000:0004::00,1: 759100200031:3020:6:000000:0004:0802:00,2::::1:3020:1:00,11: >>:
y luego poder transformar la informacion a esto:
17432979:759000620013:3230:6:000000:0004::00,1:
17432979:759000620013:3230:6:000000:0004:0802:00,2::::1:3230:1:00,1:
17432979:759100200031:3020:6:000000:0004::00,1:
17432979:759100200031:3020:6:000000:0004:0802:00,2::::1:3020:1:00,11
por ultimo dejarlo asi para subirlo a una tabla:
17432979:759000620013:3230:6:000000:0004:::::::::00,1:
17432979:759000620013:3230:6:000000:0004:0802:00,2::::1:3230:1:00,1:
17432979:759100200031:3020:6:000000:0004:::::::::00,1:
17432979:759100200031:3020:6:000000:0004:0802:00,2::::1:3020:1:00,11
Si me pueden ayudar se los agradeceria enormemente
Ana,
awk es tu amigo :]