Hola Fernando, Manolo muchas gracias por contestar.El 29 de septiembre de 2015, 10:00, fernando sainz <fernandojose.sainz@gmail.com> escribió:El día 29 de septiembre de 2015, 14:45, Jorge A. Secreto
<jorgesecreto@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.
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 textopor 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.