en script bash Quiero seleccionar N líneas aleatorias del archivo de entrada y salida a otro archivo. ¿cómo se puede hacer esto?Seleccionar líneas aleatorias de un archivo en bash
Respuesta
Ordenar el archivo de forma aleatoria y selección de primera 100
líneas:
$ sort -R input | head -n 100 >output
'sort' en realidad ordena líneas idénticas juntas, por lo que si puedes tener líneas duplicadas y tú tiene 'shuf' (una herramienta gnu) instalada, es mejor usarlo para esto. – Kevin
Andalso, esto definitivamente te va a hacer esperar ** mucho si tienes un archivo bastante grande - 80kk lines -, mientras que 'shuf -n' actúa bastante instantáneamente. – Rubens
ordenar -R no está disponible en Mac OS X (10.9) – tfb785
Uso shuf
con la opción -n
como se muestra a continuación, para obtener N
líneas al azar:
shuf -n N input > output
Esta debería ser la respuesta aceptada. Wow, Shuf es muy rápido. - La selección de 10000 líneas aleatorias de un archivo de texto con 40000 líneas es instantánea.Tratar de usar 'sort -R' tomó tanto tiempo que simplemente CTRL-C es – carpii
Si solo necesitas un conjunto aleatorio de líneas, no en orden aleatorio, entonces shuf es muy ineficiente (para archivos grandes): mejor es hacer un depósito muestreo, como en [esta respuesta] (https://stackoverflow.com/a/692401/933228). – petrelharp
ni shuf ni sort -R están disponibles para mac OSX. ¿alguna sugerencia? –
- 1. bash pull ciertas líneas de un archivo
- 2. PHP MySQL seleccionar filas aleatorias
- 3. Lee un número de líneas aleatorias de un archivo en Python
- 4. Seleccionar filas aleatorias de la tabla MySQL
- 5. Consultas aleatorias en un archivo xml grande
- 6. Concatenar líneas en Bash
- 7. ¿Cómo puedo obtener exactamente n líneas aleatorias de un archivo con Perl?
- 8. bash loop skip líneas comentadas
- 9. Líneas de continuación de Bash
- 10. Seleccionar n filas aleatorias de la tabla de SQL Server
- 11. Bash edite el archivo y guarde las últimas 500 líneas
- 12. Cómo analizar un archivo CSV en Bash?
- 13. asignación de múltiples líneas en bash
- 14. Bash: encontrar el archivo con las líneas max contar
- 15. Cómo realizo lecturas aleatorias de un archivo UTF8
- 16. Selección de filas aleatorias en MySQL
- 17. ¿Cómo seleccionar N filas aleatorias usando SQL puro?
- 18. ¿Cómo ordenar con múltiples líneas en bash?
- 19. ¿Cómo eliminar las dos primeras líneas y las últimas cuatro líneas de un archivo de texto con bash?
- 20. ¿Cómo puedo emparejar cada dos líneas de un archivo de texto con Bash?
- 21. reemplazar una línea con múltiples líneas en un archivo
- 22. Agregar líneas a un archivo
- 23. Leer líneas a partir de un número de línea en un script bash
- 24. Crear y escribir líneas en un archivo
- 25. recuento (no en blanco) líneas de código en bash
- 26. seleccionar -primero 1 en un archivo grande
- 27. Manera simple de colorear líneas de salida alternativas en bash
- 28. Iteración sobre las líneas de un archivo
- 29. reemplazar un archivo entero con otro archivo en bash
- 30. Número de salida de líneas en un archivo de texto a la pantalla en Unix
Ordenar el archivo de forma aleatoria y de selección de N primeras líneas. –
También vea http://stackoverflow.com/questions/12354659/how-to-select-random-lines-from-a-file. –
esto no es un duplicado - quiere N líneas vs 1 línea. – OneSolitaryNoob