¿Cómo puedo pedir archivos en un directorio por su verdadero orden numérico?Bash true numian order
file1.txt
file2.txt
file11.txt
...
creo que se llama: Orden Natural
¿Cómo puedo pedir archivos en un directorio por su verdadero orden numérico?Bash true numian order
file1.txt
file2.txt
file11.txt
...
creo que se llama: Orden Natural
Utilice la opción -v
:
ls -v file*
file1
file2
file11
file12
Otra opción puede estar usando sort -V
, en el supuesto de que uno está disponible en su plataforma:
ls file* |sort -V
Solo con GNU 'ls'; en MacOS X, la opción 'ls -v' es 'Forzar impresión no editada de caracteres no gráficos'. –
'$ ls -v' devuelve' test5.txt text1.txt text2.txt text11.txt' para mí. – thejh
¿Qué hay de usar ordenar (ver la edición anterior)? Ese también viene con una opción de clasificación natural. – icanhasserver
Si todos los nombres de archivo son fileSOMENUMBER.txt
, intente esto:
ls -1|sed 's:^[^0-9]*\([0-9]*\).*$:\1:g'|sort -n|sed 's:^\(.*\)$:file\1.txt:g'
Para esta lista particular de archivos, ordenar numéricamente comenzando en el quinto carácter del primer campo.
$ ls file*|sort -k1.5n
file1
file2
file11
file12
¿Sería una opción rellenar los números con ceros al crear los archivos? – thejh
¿Cuál es la conexión bash aquí? –
"bash" tiende a sugerir que el problema debe resolverse en algún tipo de sistema operativo Unix y no en Windows. – icanhasserver