[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ordenar archivos por el número de caracteres de su nombre



El día 6 de diciembre de 2012 14:44, "Matías A. Bellone"
<matiasbellone@gmail.com> escribió:
> On 12/06/2012 03:43 PM, Marcos Delgado wrote:
>>
>> El día 6 de diciembre de 2012 12:05, "Matías A. Bellone"
>> <matiasbellone@gmail.com>  escribió:
>>>
>>> On 12/06/2012 02:52 PM, Marcos Delgado wrote:
>>>>
>>>>
>>>> El día 6 de diciembre de 2012 11:46, "Matías A. Bellone"
>>>> <matiasbellone@gmail.com>   escribió:
>>>>>
>>>>>
>>>>> On 12/06/2012 02:41 PM, Marcos Delgado wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> El día 6 de diciembre de 2012 11:23, "Matías A. Bellone"
>>>>>> <matiasbellone@gmail.com>    escribió:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 12/06/2012 02:07 PM, Marcos Delgado wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Pues bien, necesito realizar esa labor, hasta el momento lo que más
>>>>>>>> he
>>>>>>>> podido hacer revisando opciones en internet es la siguiente orden:
>>>>>>>>
>>>>>>>> for i in *; do echo $i ;  echo -e $i | tr -d '\n' | wc -c ; done
>>>>>>>>
>>>>>>>> pero no me sirve ya que aparecen en líneas separadas el número de
>>>>>>>> caracteres y el nombre del archivo.
>>>>>>>>
>>>>>>>> Se agradece cualquier ayuda.
>>>>>>>>
>>>>>>>> Gracias.
>>>>>>>> Marcos Delgado.
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> for FILE in *; do echo `echo ${FILE} | wc -m` ${FILE}; done | sort -n
>>>>>>> |
>>>>>>> cut
>>>>>>> -d\  -f2
>>>>>>>
>>>>>>> Lo que hacés es:
>>>>>>>            1- imprimir (2) y el nombre del archivo
>>>>>>>            2- darle de comer cada nombre de archivo a "wc -m"
>>>>>>>            3- a toda la salida pasarla por sort -n
>>>>>>>            4- sólo obtener el nombre del archivo con cut
>>>>>>>
>>>>>>> Saludos,
>>>>>>> Toote
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Muy bien! el único problema es con los archivos con espacios, estoy
>>>>>> viendo si con poner comillas se soluciona, gracias.
>>>>>>
>>>>>
>>>>>
>>>>> cambiá el 2 al final por "2-" para que te muestre todo menos el 1er
>>>>> campo.
>>>>>
>>>>
>>>> Sigue igual, gracias.
>>>>
>>>>
>>>
>>> Entonces no lo estás haciendo bien:
>>>
>>> $ ls
>>> apruebas 1.txt  prueba 1.txt  prueba 2.txt  pruebas 1.txt
>>> $ for FILE in *; do echo `echo ${FILE} | wc -m` ${FILE}; done | sort -n |
>>> cut -d\  -f2-
>>> prueba 1.txt
>>> prueba 2.txt
>>> pruebas 1.txt
>>> apruebas 1.txt
>>> $
>>>
>>> Saludos,
>>> Toote
>>
>>
>> La cuestión es que si hay archivos cuyo nombre empieza con un número
>> los lista al final.
>>
>
> A mí no me pasa eso:
>
> $ ls
> 1 ast.txt       apruebas 1.txt  prueba 2.txt
> 2 asdsddst.txt  prueba 1.txt    pruebas 1.txt
>
> $ for FILE in *; do echo `echo ${FILE} | wc -m` ${FILE}; done | sort -n |
> cut -d\  -f2-
> 1 ast.txt
>
> prueba 1.txt
> prueba 2.txt
> pruebas 1.txt
> 2 asdsddst.txt
> apruebas 1.txt
>
> Saludos,
> Toote
>
>
> --
> To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmaster@lists.debian.org
> Archive: [🔎] 50C103C5.4030908@gmail.com">http://lists.debian.org/[🔎] 50C103C5.4030908@gmail.com
>

Revisando awk con este comando el resultado sale más rápido:

ls | awk 'length($0) {print length " " $0| "sort -g"}'

Gracias.
Marcos Delgado.


Reply to: