Je voudrais créer plus de 1000 fichiers texte avec du texte pour tester un script, comment créer autant de fichiers texte à la volée en utilisant shell script ou Perl. S'il vous plaît quelqu'un pourrait-il m'aider.Comment puis-je créer 1000 fichiers que je peux utiliser pour tester un script?
Répondre
for i in {0001..1000}
do
echo "some text" > "file_${i}.txt"
done
ou si vous voulez utiliser Python 2.6 <
for x in range(1000):
open("file%03d.txt" % x,"w").write("some text")
Vos noms de fichiers dans la version Bash sera de 10 à 1000999. Je pense que vous voulez dire 'echo" du texte "> fichier $ fichier' –
oui, merci de repérer. – ghostdog74
La première option nécessite que Bash 4 utilise le remplissage. Dans les versions antérieures, vous pouvez spécifier des zéros en tête, mais ils n'apparaîtront pas dans le résultat. –
Je ne sais pas décortiqués perl mais en python serait:
#!/usr/bin/python
for i in xrange(1000):
with open('file%0.3d' %i,'w') as fd:
fd.write('some text')
Je pense est assez simple ce qu'il fait.
J'ai essayé votre script, mais j'obtiens une erreur: ./crea.py:4: Attention: 'avec' deviendra un mot-clé réservé en Python 2.6 Fichier "./crea.py", ligne 4 avec open ('fichier% 0.3d'% i, 'w') comme fd: ^ SyntaxError: syntaxe invalide – Kaartz
try from __future__ import with_statement – ghostdog74
Ce serait 'from __future__ import with_statement' (le système a mangé les underscores dans * * commentaire de ghostdog74 **). –
#!/bin/bash
seq 1 1000 | split -l 1 -a 3 -d - file
Au-dessus va créer 1000 fichiers avec chaque fichier ayant un nombre de 1 à 1000. Les fichiers seront nommés 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
Vous ne pouvez utiliser que Bash et sans externals être encore capable de rembourrer les nombres de sorte que le p sorte les noms de fichiers roperly (si nécessaire):
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 peut le faire comme ceci:
for filename in file{0001..1000}; do echo $text > $filename; done
Les deux versions produisent des noms comme "file0001" et "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;
}
Pourquoi les 2 premières lignes? Parce qu'ils sont de bonnes pratiques, je les utilise même dans des programmes à 1 tir comme ceux-ci.
Cordialement, offre
Alors que vous préconisez les bonnes pratiques (et à juste titre), vous pouvez aussi bien vérifier le succès à l'ouverture ... ou mourir "impossible d'ouvrir le fichier: $!"; – toolic
... ou vous pourriez simplement 'utiliser autodie;' –
Pour la variété:
#!/usr/bin/perl
use strict; use warnings;
use File::Slurp;
write_file $_, "$_\n" for map sprintf('file%04d.txt', $_), 1 .. 1000;
Ceci est génial. Je me suis moqué de sa simplicité pendant une bonne minute. Upvoted. – Samveen
Voici un programme Perl court de ligne de commande.
perl -E'say $_ $_ for grep {open $_, ">f$_"} 1..1000'
Il suffit de prendre tout grand dossier qui a plus de 1000 octets (pour 1000 fichiers avec le contenu). Il y en a beaucoup sur votre ordinateur. Ensuite, faites (par exemple):
split -n 1000 /usr/bin/firefox
Ceci est instantanément rapide.
Ou un fichier plus grand:
split -n 10000 /usr/bin/cat
Cela a pris seulement 0,253 secondes pour créer 10000 fichiers.
Pour 100k fichiers:
split -n 100000 /usr/bin/gcc
seulement 1,974 secondes pour 100k fichiers avec environ 5 octets chacun.
Si vous voulez uniquement des fichiers avec le texte, regardez dans votre répertoire/etc. Créer un million de fichiers texte avec presque aléatoire texte:
split -n 1000000 /etc/gconf/schemas/gnome-terminal.schemas
20.203 secondes pour les fichiers 1M avec environ 2 octets chacun. Si vous divisez ce gros fichier en seulement 10k parties, cela ne prend que 0.220 secondes et chaque fichier a 256 octets de texte.
Le seul problème peut être "les fichiers ne seront pas des fichiers texte". J'ai une version archaïque de GNU 'split' qui ne reconnaît pas' -n'; la version BSD (Mac OS X) ne le reconnaît pas non plus. J'ai juste besoin de mettre à jour mon installation CoreUtils. –
Ok, c'est vrai. Si vous voulez un million de petits fichiers texte, utilisez simplement un gros fichier texte en entrée. Il y en a assez sur votre ordinateur. Par exemple /etc/gconf/schemas/gnome-terminal.schemas qui a 2,6 Mo si vous voulez un très gros. – erik
- 1. Existe-t-il un compilateur php en ligne que je peux tester avec plusieurs fichiers php?
- 2. Quelle approche dois-je utiliser pour tester un VBScript?
- 3. Quelle est la meilleure application que je peux utiliser pour tester webservice?
- 4. Comment créer un script pour que les utilisateurs puissent tester PHP lors de la saisie!
- 5. Comment puis-je créer un script ultime pour tester le nouvel environnement de serveur?
- 6. Quel script singe graisse je peux utiliser pour personnaliser la page Web que j'ouvre
- 7. Puis-je utiliser F # Interactive pour créer un script ou déboguer/tester interactivement mes projets d'interface graphique C#?
- 8. Comment puis-je utiliser un script perl pour créer/remplir et dessiner un graphe RRDTool
- 9. tester pour voir combien d'instances de script ruby je peux exécuter
- 10. quelle jquery je peux utiliser?
- 11. Comment créer un script/programme pour que l'application fonctionne toujours?
- 12. créer un paquet UDP je peux diviser
- 13. Comment est-ce que je peux tester le JavaScript potentiellement "navigateur-plantage"?
- 14. Dans postgresql: Comment créer un compteur simple que je peux réinitialiser?
- 15. Que puis-je utiliser à la place de TFMail pour un script de messagerie?
- 16. WPF: Comment est-ce que je peux fermer un PrintDialog?
- 17. Qu'est-ce qu'un bon script PHP que je peux utiliser comme sondage?
- 18. Comment puis-je obtenir une chaîne dans un format que je peux utiliser avec UIWebView loadRequest?
- 19. Puis-je utiliser Android SDK pour tester un combiné?
- 20. Comment puis-je implémenter un OutputStream que je peux rembobiner?
- 21. Utilisation de VS 2008 (vb.net) Je dois créer un objet que je peux utiliser dans ASP classique avec CreateObject
- 22. Comment je peux utiliser mysql en C++?
- 23. Est-ce que je peux programmer un "net use" sur un partage de fichiers?
- 24. comment je peux utiliser l'analyseur SAX
- 25. Y at-il un composant Gui que je peux utiliser pour permettre aux utilisateurs de créer des chaînes de connexion?
- 26. Comment est-ce que je peux tester une servlet avec une requête qui ne contient que du contenu xml?
- 27. Script SQL pour créer un script d'insertion
- 28. comment je peux utiliser comme déclaration C#
- 29. Comment est-ce que je peux rendre à un cubemap?
- 30. Est-ce que quelqu'un pourrait me montrer comment créer un CGPattern que je peux utiliser pour tracer un chemin avec une image?
Pouvez-vous créer un fichier texte? Pouvez-vous concevoir un système pour générer des noms de fichiers, par exemple. fichier0001, fichier002? Pouvez-vous écrire une boucle for pour faire ces deux tâches. À quel moment êtes-vous coincé? – djna