Text 如何定期将文本块从一个文本文件复制到另一个文本文件

Text 如何定期将文本块从一个文本文件复制到另一个文本文件,text,batch-processing,Text,Batch Processing,我有一个文本(XML)文件,其中包含由字符串/扫描分隔的数据块(每16行长度)。我需要将每5个数据块(包括前面的/扫描字符串)复制到一个新文件中,基本上将我的一个文本文件转换为5个新文件,其中每个文件包含1/5的数据。我有多种可用的语言(linux、python、R等),并且我对选项持开放态度。例如,给定文本: /扫描 /扫描 /扫描 /扫描 /扫描 /扫描 /扫描 /扫描 /扫描 /扫描 生成的文件将包含: 文件1: /扫描 /扫描 文件2: /扫描 /扫描 文件3: /扫描 /扫描 …等等。

我有一个文本(XML)文件,其中包含由字符串/扫描分隔的数据块(每16行长度)。我需要将每5个数据块(包括前面的/扫描字符串)复制到一个新文件中,基本上将我的一个文本文件转换为5个新文件,其中每个文件包含1/5的数据。我有多种可用的语言(linux、python、R等),并且我对选项持开放态度。例如,给定文本:

/扫描

/扫描

/扫描

/扫描

/扫描

/扫描

/扫描

/扫描

/扫描

/扫描

生成的文件将包含:

文件1:

/扫描

/扫描

文件2:

/扫描

/扫描

文件3:

/扫描

/扫描

…等等。

@ECHO Off
SETLOCAL ENABLEDELAYEDEXPANSION
设置“sourcedir=U:\sourcedir”
设置“destdir=U:\destdir”
设置“filename1=%sourcedir%\q35757136.txt”
设置“输出文件=%destdir%\q35757136\u输出”
设置/a输出文件=5
SET/a outnum=0
::删除现有的输出文件
对于(1,1,%outfiles%)中的/L%%a,请删除“%outfile%%%a.txt”>NUL 2>NUL
对于/f“usebackqdelims=“%%a IN”(“%filename1%”)DO(
如果“%%a”==“/scan”设置/a outnum=1+(outnum%%%outfiles%^)
>>“%outfile%!outnum!”回显(%%a)
)
后藤:EOF
您需要更改
sourcedir
destdir
的设置以适应您的环境

我使用了一个名为
q35757136.txt
的文件,其中包含用于测试的数据

生成定义为%outfile%+anumber.txt的文件

对于每一行输入,查看它是否是键字符串。如果是,则递增输出文件选择器

将每一行复制到选定的输出文件

假设OP知道批处理字符串处理的缺点

chunk 1
chunk 2
chunk 3
chunk 4
chunk 5
chunk 6
chunk 7
chunk 8
chunk 9
chunk 10
chunk 1
chunk 6
chunk 2
chunk 7
chunk 3
chunk 8