Text 将文本拆分为n个单词的较小文本
我有大量txt格式的文本(几千),我想把它们分成500字长的块,并将这些块保存到单独的文件夹中Text 将文本拆分为n个单词的较小文本,text,split,Text,Split,我有大量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
<*.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
这就是我要找的!谢谢!