Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/03/2015, 12:17
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Crear script para versionar dos archivos en UNIX

Para saber cuántos archivos cuyo nombre empieza con "dato_" y termina con ".dat":
ls -1 dato_*.dat | wc -l

No es a prueba de fallas, ya que el salto de línea es un caracter válido para un nombre de archivo en UNIX, y además necesitás manejar correctamente el caso donde no hay archivos que coincidan, pero en el 99% de los casos funciona.

Ahora, lo "lindo" de tu caso es que por la forma en la que los estás nombrando, el archivo cuyo nombre contenga al número más grande será también el primero de la lista de "ls -1r" o el último de "ls -1", con lo cual es fácilmente identificable.

El número lo podés obtener simplemente con sustitución de cadenas de bash. Creo que con lo siguiente deberías poder solucionar el problema :)
Código BASH:
Ver original
  1. ARCHIVO=$(ls -1 dato*.dat | tail -1)
  2. NUM_ARCHIVO=${ARCHIVO//[a-z_.]/}
  3. SIGUIENTE_ARCHIVO=$(( NUM_ARCHIVO + 1 ))

Saludos.