Text 将文本拆分为n个单词的较小文本

Text 将文本拆分为n个单词的较小文本,text,split,Text,Split,我有大量txt格式的文本(几千),我想把它们分成500字长的块,并将这些块保存到单独的文件夹中 < *.txt tr -c A-Za-z0-9 \\n | grep -v '^$' | split -l 500

我有大量txt格式的文本(几千),我想把它们分成500字长的块,并将这些块保存到单独的文件夹中

< *.txt  tr -c A-Za-z0-9 \\n | grep -v '^$' | split -l 500
<*.txt tr-c A-Za-z0-9\\n|grep-v'^$'| split-l 500
可以做这项工作,但它分裂文本到一个字每行,而我想保留原来的格式。
我想知道是否有bash命令或Python脚本来实现这一点。

您也应该能够使用csplit实现这一点,但我在这里找到的perl解决方案更幸运
感谢约瑟夫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
$cat generatewordchunks.pl
perl-e'
未定义$/;
$file=;
而($file=~/\G((\S+\S+{500})/gc)
{
$i++;
打开一个“>”,“chunk-$i.txt”;
打印一张1美元的钞票;
关闭A;
}
$i++;
如果($file=~/\G(+)\Z/sg)
{
打开一个“>”,“chunk-$i.txt”;
打印一张1美元的钞票;
}
'  $1
$./generatewordchunks.pl woord.list
$ls-ltr
总数13
-rwxrwx---1根vboxsf 5934 Jul 31 16:03 woord.list
-rwxrwx---1根vboxsf 362 Jul 31 16:08 generatewordchunks.pl
-rwxrwx---1根vboxsf 4203年7月31日16:11 chunk-1.txt
-rwxrwx---1根vboxsf 1731 Jul 31 16:11 chunk-2.txt

这就是我要找的!谢谢!