我想创建1000多个文本文件,其中包含一些文本来测试脚本,如果使用shell脚本或Perl一起创建文本文件,如何创建这么多。请任何人帮助我。
答案 0 :(得分:9)
for i in {0001..1000}
do
echo "some text" > "file_${i}.txt"
done
或者如果你想使用Python< 2.6
for x in range(1000):
open("file%03d.txt" % x,"w").write("some text")
答案 1 :(得分:6)
#!/bin/bash
seq 1 1000 | split -l 1 -a 3 -d - file
上面将创建1000个文件,每个文件的编号从1到1000.文件名为file000 ... file999
答案 2 :(得分:4)
Perl:
use strict;
use warnings;
for my $i (1..1000) {
open(my $out,">",sprintf("file%04d",$i));
print $out "some text\n";
close $out;
}
为什么前两行?因为它们是很好的练习所以我甚至在像这样的一次性程序中使用它们。
此致 报价
答案 3 :(得分:3)
对于多样性:
#!/usr/bin/perl
use strict; use warnings;
use File::Slurp;
write_file $_, "$_\n" for map sprintf('file%04d.txt', $_), 1 .. 1000;
答案 4 :(得分:2)
#!/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
答案 5 :(得分:1)
我不知道shell或perl但是在python中会是:
#!/usr/bin/python
for i in xrange(1000):
with open('file%0.3d' %i,'w') as fd:
fd.write('some text')
我认为它的作用非常简单。
答案 6 :(得分:1)
您只能使用没有外部的Bash,仍然可以填充数字,以便正确排序文件名(如果需要):
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可以这样做:
for filename in file{0001..1000}; do echo $text > $filename; done
两个版本都生成文件名,如“file0001”和“file1000”。
答案 7 :(得分:1)
只需获取超过1000个字节的任何大文件(包含1000个带内容的文件)。你的电脑上有很多。然后做(例如):
split -n 1000 /usr/bin/firefox
这很快就会出现。
或更大的文件:
split -n 10000 /usr/bin/cat
创建10000个文件只需 0.253秒。
对于100k文件:
split -n 100000 /usr/bin/gcc
对于100k文件,只有 1.974秒,每个文件大约5个字节。
如果您只想要带文字的文件,请查看您的/ etc目录。使用几乎随机文本创建一百万个文本文件:
split -n 1000000 /etc/gconf/schemas/gnome-terminal.schemas
对于每个大约2个字节的1M文件,20.203秒。如果将这个大文件分成10k个零件,则只需0.220秒,每个文件有256个字节的文本。
答案 8 :(得分:0)
这是一个简短的命令行Perl程序。
perl -E'say $_ $_ for grep {open $_, ">f$_"} 1..1000'