Foros del Web » Programación para mayores de 30 ;) » Programación General »

Copiar ficheros aleatoriamente en Linux ¿ usar comando find ?

Estas en el tema de Copiar ficheros aleatoriamente en Linux ¿ usar comando find ? en el foro de Programación General en Foros del Web. Buenos dias!. Vereis, he buscado algo en las webs, y..., no encuentro nada similar,, he encontrado un programilla mix2mix ( para windows ) el cual, ...
  #1 (permalink)  
Antiguo 06/07/2010, 01:07
 
Fecha de Ingreso: septiembre-2009
Ubicación: Sevilla
Mensajes: 37
Antigüedad: 15 años, 3 meses
Puntos: 0
Copiar ficheros aleatoriamente en Linux ¿ usar comando find ?

Buenos dias!.

Vereis, he buscado algo en las webs, y..., no encuentro nada similar,, he encontrado un programilla mix2mix ( para windows ) el cual, coje .mp3 aleatoriamente y nose si me valdria o no...

Necesito cojer ficheros mp3 aleatoriamente ( son grabaciones de un callcenter ), por ejemplo, 400 ficheros.

Se trata de ir escogiendo llamadas aleatoriamente para hacer una encuesta de calidad, y... sinceramente, no se que comando usar.

Podria usar un find con alguna opcion que copie ( exec cp ) aleatoriamente?

Pido perdon si no es el sitio apropiado para preguntar esto...

Gracias.

EDITO:
Por favor, que algun moderador mueva el hilo al foro de UNIX, no me dí cuenta...

Última edición por KbzaJunior; 06/07/2010 a las 04:04 Razón: Moverlo al foro corresponidente
  #2 (permalink)  
Antiguo 09/07/2010, 03:54
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 10 meses
Puntos: 260
Sonrisa Respuesta: Copiar ficheros aleatoriamente en Linux ¿ usar comando find ?

Hola,

Posiblemente,

Código:
find . -iname '*.mp3' -print | shuf | head -n 1 | xargs -I '{}' cp '{}' /tmp
Copia un archivo MP3 al azar al directorio /tmp/. Se pueden repetir al usarlo varias veces sobre la misma muestra de archivos. (Sino necesitas un programa que guarde una lista de los copiados en un fichero y que verifique dicha lista antes de copiarlo)

Saludos,
  #3 (permalink)  
Antiguo 14/07/2010, 01:22
 
Fecha de Ingreso: septiembre-2009
Ubicación: Sevilla
Mensajes: 37
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Copiar ficheros aleatoriamente en Linux ¿ usar comando find ?

Muchas gracias.

Tengo una duda....
Si esa serie de comandos que has dicho, lo meto dentro de algun bucle que se repita por ejemplo, 400 veces, obtendré 400 ficheros mp3, verdad?

Pero claro..... no vale que pueda cojer algun mp3 ya repetido, como podria comprobar que ya no estubiera copiado?
Se me ocurre, sacar a un fichero el resultado mediante >, pero luego, no sabria como leerlo para saber si los numeros están repetidos....
No se si me explico....


Gracias!
  #4 (permalink)  
Antiguo 14/07/2010, 13:42
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 10 meses
Puntos: 260
Sonrisa Respuesta: Copiar ficheros aleatoriamente en Linux ¿ usar comando find ?

Hola,

Cita:
Iniciado por KbzaJunior Ver Mensaje
...
Si esa serie de comandos que has dicho, lo meto dentro de algun bucle que se repita por ejemplo, 400 veces, obtendré 400 ficheros mp3, verdad?
...
El programa 'head' toma la cantidad de líneas especificada en el parámetro 'n' que por defecto son 10. En el siguiente caso va a tomar 400 ficheros al azar sin repetirse, si los nombres de ficheros no se repiten dentro del árbol de directorios.

Código:
find . -iname '*.mp3' -print | shuf | head -n 400 | xargs -I '{}' cp '{}' /tmp
Esa línea funciona con bash 3 y cygwin (son parte de Core Utils), tendrías que consultar la documentación de la versión de bash que estas usando para asegurarte que funciona correctamente.

Cita:
Iniciado por KbzaJunior Ver Mensaje
...
Pero claro..... no vale que pueda cojer algun mp3 ya repetido, como podria comprobar que ya no estubiera copiado?
Se me ocurre, sacar a un fichero el resultado mediante >, pero luego, no sabria como leerlo para saber si los numeros están repetidos....
En ese caso necesitas un script más complejo, para manejar un listados de archivos ya copiados sería necesario crear una aplicación en algún lenguaje de programación interpretado como Perl, Python, Ruby, etc.

Como son lenguajes diseñados para realizar este tipo de tareas no pasará de 20-40 líneas dicho programa usando búsqueda recursiva y arrays, consulta en el sub-foro del lenguaje con el que te sientas mas cómodo si fuera necesario.

Saludos,

Última edición por HackmanC; 14/07/2010 a las 13:55 Razón: Core Utils

Etiquetas: aleatoriamente, comando, copiar, ficheros, find, linux
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:10.