Ayuda con comando CUT y los delimitadores

Iniciado por Pingüino Atormentado, 27 Enero 2019, 21:12 PM

0 Miembros y 1 Visitante están viendo este tema.

Pingüino Atormentado

Hola estaba practicando un par de comandos y me ha surgido un problema, despues de usar el comando ls -l queria mostrar el campo que corresponde al mes:
ls -l
total 0
drwxr-xr-x 3 user user  60 Jan 27 14:01 copias
drwxr-xr-x 2 user user 220 Jan 27 13:34 Desktop
drwxr-xr-x 2 user user  40 Jan 27 13:20 Documents
drwxr-xr-x 2 user user 260 Jan 27 19:23 Downloads
drwxr-xr-x 2 user user  40 Jan 27 13:20 Music
drwxr-xr-x 2 user user  40 Jan 27 13:20 Pictures
drwxr-xr-x 2 user user  40 Jan 27 13:53 PRUEBA1
drwxr-xr-x 2 user user  40 Jan 27 13:55 PRUEBA2
drwxr-xr-x 2 user user  40 Jan 27 13:20 Public
drwxr-xr-x 5 user user 100 Jan 27 13:19 Templates
drwxr-xr-x 3 user user  60 Jan 27 14:02 tempora
drwxr-xr-x 5 user user 100 Jan 27 19:19 trabajos
drwxr-xr-x 2 user user  40 Jan 27 13:20 Videos
El dilimitador de campos es un espacio por lo que:
ls -l | cut -d ' ' -f 6
El problema surge cuando entre los campos del usuario y los bytes en algunas filas existen 2 espacios debido al tamano de los archivos. Como hago para separar bien los campos ? Lo siento sino me he explicado bien. Si encuentro la solucion la publicare. Gracias de antemano.

EdePC

#1
Saludos,

- Me parece que cut no es el comando indicado para esta tarea, cut trabaja con caracteres o bytes, intenta con awk, este trabaja con palabras:

Código (bash) [Seleccionar]
ls -l | awk '{print $6}'

- Si quieres usar cut, tendrás que preparar un poco la entrada a este comando eliminando los espacios extra (duplicados) con tr, o algún procedimiento que le facilite el trabajo a cut:

Código (bash) [Seleccionar]
ls -l | tr -s ' ' | cut -d ' ' -f6

Pingüino Atormentado

Muchas gracias por tu respuesta, espero que le sirva a más gente tanto como a mi. La verdad tenia miedo de meterme a awk pero por lo que estoy viendo continuamente sirve para casi todo, prácticamente no te hace falta ningún comando para procesar una salida.