Je voudrais créer 1000+ fichiers texte avec du texte pour tester un script, comment créer autant de fichiers texte en une seule fois en utilisant un script shell ou Perl. Pourriez-vous m'aider s'il vous plaît ?
Réponses
Trop de publicités?Il suffit de prendre n'importe quel gros fichier de plus de 1000 octets (pour 1000 fichiers avec du contenu). Il y en a beaucoup sur votre ordinateur. Ensuite, faites (par exemple) :
split -n 1000 /usr/bin/firefox
C'est instantanément rapide.
Ou un fichier plus gros :
split -n 10000 /usr/bin/cat
Cela n'a pris que 0,253 secondes pour créer 10000 fichiers.
Pour 100k fichiers :
split -n 100000 /usr/bin/gcc
Seulement 1,974 secondes pour 100 000 fichiers avec environ 5 octets chacun.
Si vous ne voulez que des fichiers avec du texte, regardez votre répertoire /etc. Créez un million de fichiers texte avec du texte presque aléatoire :
split -n 1000000 /etc/gconf/schemas/gnome-terminal.schemas
20.203 secondes pour 1M fichiers 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 contient 256 octets de texte.
Vous pouvez utiliser uniquement Bash sans éléments externes et encore être en mesure de mettre des zéros pour que les noms de fichiers soient triés correctement (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 de cette façon :
for filename in file{0001..1000}; do echo $text > $filename; done
Les deux versions produisent des noms de fichiers comme "file0001" et "file1000".
- Réponses précédentes
- Plus de réponses