El 29 de septiembre de 2015, 10:00, fernando sainz <
fernandojose.sa...@gmail.com> escribió:

> El día 29 de septiembre de 2015, 14:45, Jorge A. Secreto
> <jorgesecr...@gmail.com> escribió:
> > Hola gente!
> > Disculpen que consulte por esta pavada, pero estuve leyendo el man de
> awk,
> > el de sed, el de bash, busqué en google 'numerar archivos linea comando
> > linux' y cosas por el estilo y nada me sacó de mi ignorancia :-(
> > Tengo algunos miles de archivos de texto que tengo que concatenar en
> orden.
> > Están numerados con el orden que debo respetar al comienzo del nombre,
> por
> > ej '1 xxx.txt' '2 xxx.txt' etc.
> > El problema se me presenta cuando los uno con 'cat -s *.txt >
> unidos.txt',
> > porque el orden que usa cat para leerlos es alfabético en vez del orden
> > natural numérico, como haría 'ls -v', es decir, ordena '100 ''10 ''1 ' en
> > vez de '1 ''10 ''100 ', que es lo que necesito.
> > Podría armar algún programa, en alto nivel, para hacerlo, pero me parece
> > exagerado, creo que se tiene que poder hacer desde la línea de comando.
> > Si álguien de la lista fuera tan amable como para desasnarme, habría
> subido
> > un peldañito más en su camino al cielo.
> > Gracias y, nuevamente, disculpen que moleste.
>
>
> Así sin pensarlo mucho se me ocurre que esto te puede funcionar:
>
>    cat `ls *kk | sort -n`
> o
>    cat $(ls *kk | sort -n)
>
> S2.
>
> Hola  Fernando, Manolo, muchas gracias por contestar.

Cat no se lleva bien con la sustitucion de la entrada.  :-P

$ cat `ls -v *.txt` > pepe
cat: opción inválida -- '.'

$ cat -- `ls -v *.txt` > pepe
cat: 01: No existe el fichero o el directorio

$ ls -v *.txt|cat -
Devuelve la lista de archivos porque lo toma como una entrada de texto

por eso se me ocurrió que podría haber alguna forma de renombrarlos
poniendo, por ej, los números como 000001, 000002...000010...000100, que
solucionaría lo del ordenamiento natural y a partir de ahi sólo queda
concatenarlos.

Gracias nuevamente.


-- 
Jorge A Secreto
Analista de Sistemas
MP 361

Reply via email to