我有大量的文本(几千个)采用txt格式,并希望将它们拆分为500字长的块并将这些块保存到单独的文件夹中。
< *.txt tr -c A-Za-z0-9 \\n | grep -v '^$' | split -l 500
可以完成这项工作,但它会将文本分成每行一个单词,而我希望保留原始格式。 我想知道是否有bash命令或Python脚本来执行此操作。
答案 0 :(得分:0)
你也应该能够用csplit做到这一点,但我在这里找到的perl解决方案运气更好; https://unix.stackexchange.com/questions/66513/how-can-i-split-a-large-text-file-into-chunks-of-500-words-or-so
感谢Joseph R。
$ cat generatewordchunks.pl
perl -e '
undef $/;
$file=<>;
while($file=~ /\G((\S+\s+){500})/gc)
{
$i++;
open A,">","chunk-$i.txt";
print A $1;
close A;
}
$i++;
if($file=~ /\G(.+)\Z/sg)
{
open A,">","chunk-$i.txt";
print A $1;
}
' $1
$ ./generatewordchunks.pl woord.list
$ ls -ltr
total 13
-rwxrwx--- 1 root vboxsf 5934 Jul 31 16:03 woord.list
-rwxrwx--- 1 root vboxsf 362 Jul 31 16:08 generatewordchunks.pl
-rwxrwx--- 1 root vboxsf 4203 Jul 31 16:11 chunk-1.txt
-rwxrwx--- 1 root vboxsf 1731 Jul 31 16:11 chunk-2.txt