Buscar un archivo en una carpeta con patrón numérico

Buscar un archivo en una carpeta con patrón numérico

He proporcionado el siguiente comando de búsqueda para buscar y enumerar todos los archivos en una carpeta. Los archivos se enumeran en orden alfabético, pero quiero enumerar todos los archivos en un patrón numérico. cuando utilicé "-número" en lugar de "-nombre", no funciona.

find . -type f -name '*'
I100001093
I200001093
I300001093
XB00001093
I100001094
I200001094
I300001094
XB00001094
I100001095
I200001095
I300001095
XB00001095

¿Alguien puede sugerirme el comando correcto para enumerarlo en orden numérico?

Respuesta1

Dependiendo de cómo desee que se manejen las partes Iy Xdemás, es posible que pueda usar el sortcomando como:

find . -type f | sort -n

Si ese no es el orden de clasificación que desea, deberá brindarnos más detalles (e idealmente mostrarnos el resultado deseado de su ejemplo).

Dado que desea agrupar el inicio de los nombres, podemos especificar el campo clave para ordenar. Dado que la salida de buscar comenzará con ./{id}los siguientes dos caracteres (aparentemente) relacionados en un lote, podemos comenzar a ordenar desde el quinto carácter en línea especificando la clave de clasificación:

find . -type f | sort -n -k 1.5

-kpara ordenar le permite especificar la clave por la cual ordenar, aquí estamos ordenando en el primer campo, pero comenzando en el quinto carácter y luego usando -npara ordenar numéricamente

Si desea sólo el directorio actual, puede utilizar -maxdepthcomo en:

find . -maxdepth 1 -type f | sort -n -k 1.5

si quieres que sea portátil:

find . -path '*/*/*' -prune -o -type f | sort -n -k 1.5

información relacionada