Me gustaría crear más de 1000 archivos de texto con texto para probar una secuencia de comandos, cómo crear esto mucho si los archivos de texto de una vez usan script de shell o Perl. Por favor alguien podría ayudarme.¿Cómo puedo crear 1000 archivos que puedo usar para probar un script?
Respuesta
for i in {0001..1000}
do
echo "some text" > "file_${i}.txt"
done
o si desea utilizar Python 2.6 <
for x in range(1000):
open("file%03d.txt" % x,"w").write("some text")
Los nombres de tus archivos en la versión de Bash serán del 10 al 1000999. Creo que te refieres a 'echo' algún texto '> archivo $ archivo' –
sí, eso es para detectar. – ghostdog74
La primera opción requiere Bash 4 para hacer uso del relleno. En versiones anteriores, puede especificar ceros a la izquierda, pero no aparecerán en el resultado. –
no sé en shell o Perl, pero en Python sería:
#!/usr/bin/python
for i in xrange(1000):
with open('file%0.3d' %i,'w') as fd:
fd.write('some text')
Creo que es bastante sencillo lo que hace.
He intentado su secuencia de comandos, pero me aparece un error: ./crea.py:4: Advertencia: 'con' se convertirá en una palabra clave reservada en Python 2.6 Archivo "./crea.py", línea 4 con open ('archivo% 0.3d'% i, 'w') como fd: ^ SyntaxError: sintaxis no válida – Kaartz
try from __future__ import with_statement – ghostdog74
Eso sería 'desde __future__ import with_statement' (el sistema comió los guiones bajos en * * ** comentario de ghostdog74). –
#!/bin/bash
seq 1 1000 | split -l 1 -a 3 -d - file
anterior creará 1.000 archivos con cada archivo que tiene un número de 1 a 1000. Los archivos se nombrarán file000 ... file999
#!/bin/bash
for suf in $(seq -w 1000)
do
cat <<EOF> myfile.$suf
this is my text file
there are many like it
but this one is mine.
EOF
done
Sólo se puede utilizar sin Bash externos y aún así ser capaz de rellenar los números para los nombres de archivo tipo p roperly (si es necesario):
read -r -d '' text << 'EOF'
Some text for
my files
EOF
for i in {1..1000}
do
printf -v filename "file%04d" "$i"
echo "$text" > "$filename"
done
Bash 4 puede hacerlo de esta manera:
for filename in file{0001..1000}; do echo $text > $filename; done
Ambas versiones producen nombres de archivo como "file0001" y "file1000".
En Perl:
use strict;
use warnings;
for my $i (1..1000) {
open(my $out,">",sprintf("file%04d",$i));
print $out "some text\n";
close $out;
}
¿Por qué las 2 primeras líneas? Debido a que son una buena práctica, los uso incluso en programas de una oportunidad como estos.
Saludos, Oferta
Mientras defiende las buenas prácticas (y con razón), también puede verificar el éxito en abierto ... o morir "no se puede abrir el archivo: $!"; – toolic
... o podría simplemente 'usar autodie;' –
Para variar:
#!/usr/bin/perl
use strict; use warnings;
use File::Slurp;
write_file $_, "$_\n" for map sprintf('file%04d.txt', $_), 1 .. 1000;
Esto es asombroso. Me reí de su simplicidad por un buen minuto. Upvoted. – Samveen
Aquí es un programa Perl corto de línea de comandos.
perl -E'say $_ $_ for grep {open $_, ">f$_"} 1..1000'
acaba de tomar cualquier archivo grande que tiene más de 1000 bytes (para 1000 archivos con contenido). Hay muchos de ellos en su computadora. A continuación, realice (por ejemplo):
split -n 1000 /usr/bin/firefox
Esto es instantáneamente rápido.
o un archivo más grande:
split -n 10000 /usr/bin/cat
Esto tomó sólo 0,253 segundos para la creación de 10.000 archivos.
Para 100k archivos:
split -n 100000 /usr/bin/gcc
Sólo 1.974 segundos de 100 mil archivos con cerca de 5 bytes cada uno.
Si solo desea archivos con el texto, mire su directorio/etc. Crear un millón de archivos de texto con casi aleatoria texto:
split -n 1000000 /etc/gconf/schemas/gnome-terminal.schemas
20.203 segundos para archivos 1M con cerca de 2 bytes cada uno. Si divide este archivo grande en solo 10k partes, solo toma 0.220 segundos y cada archivo tiene 256 bytes de texto.
La única objeción puede ser 'los archivos no serán archivos de texto'. Tengo una versión arcaica de GNU 'split' que no reconoce' -n'; la versión de BSD (Mac OS X) tampoco lo reconoce. Solo necesito actualizar mi instalación de CoreUtils. –
Ok, eso es cierto. Si desea un millón de archivos de texto pequeños, simplemente use un archivo de texto grande como entrada. Hay suficiente en tu computadora. Por ejemplo /etc/gconf/schemas/gnome-terminal.schemas que tiene 2.6 MB si quieres uno muy grande. – erik
- 1. ¿Cómo puedo usar un script para crear usuarios en mongodb?
- 2. ¿Cómo puedo probar un arquetipo maven que acabo de crear?
- 3. ¿Cómo puedo crear un certificado SSL autofirmado para usar al probar una aplicación web?
- 4. Cómo puedo clonar entornos limpios para probar un instalador
- 5. ¿Cómo puedo usar JScript para crear un acceso directo que utiliza "Ejecutar como administrador"
- 6. C# ¿Cómo puedo probar que un archivo es un jpeg?
- 7. ¿Cómo puedo modificar mi script Perl para usar múltiples procesadores?
- 8. ¿Cómo puedo usar parseInt para un doble?
- 9. ¿Cómo puedo probar ModelState?
- 10. ¿Cómo puedo probar que "algo" es un hash en Perl?
- 11. Cómo puedo crear archivos de encabezado C
- 12. ¿Cómo puedo usar Delphi para probar si un Directorio es grabable?
- 13. ¿Qué puedo usar para crear un cliente REST en Java?
- 14. ¿Puedo usar HTML5 Now para crear un sitio web?
- 15. ¿Puedo usar Fit/Fitnesse para probar una aplicación .NET?
- 16. ¿Cómo puedo probar si existe una lista de archivos?
- 17. ¿Cómo puedo crear una interfaz para matplotlib?
- 18. ¿Puedo usar FileStream para implementar un bloqueo de archivos?
- 19. ¿Cómo puedo hacer que un script espere una contraseña?
- 20. ¿Cómo puedo usar FTP para mover archivos entre directorios?
- 21. ¿Cómo puedo usar qmake para copiar archivos recursivamente?
- 22. ¿Puedo usar Sass con un script por lotes en Windows
- 23. Cómo usar travis-ci o gruñir para probar con diferentes versiones de un script
- 24. ¿Cómo puedo probar el tipo de consulta que generará Mongoid?
- 25. ¿Puedo crear un ImageButton de ASP.NET que no se devuelva?
- 26. ¿Cómo puedo crear un ramdisk en Python?
- 27. ¿Cómo puedo probar la unidad de un controlador Symfony2?
- 28. ¿Cómo puedo crear un menú en HTML sin usar Javascript?
- 29. ¿Cómo puedo crear un AVD para pruebas en tableta?
- 30. ¿Cómo puedo crear un disco RAM programáticamente?
¿Puedes crear un archivo de texto? ¿Puede diseñar un esquema para generar nombres de archivos, por ej. file0001, file002? ¿Puedes escribir un ciclo for para hacer esas dos tareas? ¿En qué punto te quedas atascado? – djna