Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 基于模式在Linux上拆分文件_File_Unix_Awk_Split - Fatal编程技术网

File 基于模式在Linux上拆分文件

File 基于模式在Linux上拆分文件,file,unix,awk,split,File,Unix,Awk,Split,需要一个快速的Linux提示 我有一个文件,但将有多个记录的批处理 像 我需要将其拆分为多个文件,从“HDR”(包含)到下一个HDR(不包含) 以这种方式,如果文件中有100个批,我需要将其拆分为4个文件,每个文件25个 awk救援 awk '/HDR/{c++} {print > FILENAME"_"c }' file 或者更一般地,在分割文件中获取n模式,例如n=3 awk -v n=3 '/HDR/{k=int(c/n)+1; c++} {print > FILENAME"

需要一个快速的Linux提示

我有一个文件,但将有多个记录的批处理

我需要将其拆分为多个文件,从“HDR”(包含)到下一个HDR(不包含)


以这种方式,如果文件中有100个批,我需要将其拆分为4个文件,每个文件25个

awk
救援

awk '/HDR/{c++} {print > FILENAME"_"c }' file
或者更一般地,在分割文件中获取
n
模式,例如n=3

awk -v n=3 '/HDR/{k=int(c/n)+1; c++} {print > FILENAME"_"k }' file       

awk
救援

awk '/HDR/{c++} {print > FILENAME"_"c }' file
或者更一般地,在分割文件中获取
n
模式,例如n=3

awk -v n=3 '/HDR/{k=int(c/n)+1; c++} {print > FILENAME"_"k }' file       

这是一个伟大的。。。卡拉卡法等分。我有预感阿克会来营救的。如何将此扩展到我选择的计数?假设一个文件中的批数为x。它取决于内容,您将获得与文件中模式计数相同的分割文件数。或者,也许你在问别的问题?我们很接近。我想问的是,我们现在是否可以将它们分成5个模式匹配,然后写入一个文件。类似于awk'/HDR/{c+5}{print>FILENAME“\uu”c}”文件,好像在找到一定数量的匹配项之前,我不会写入分割的文件。@karakfa因为文件描述符的数量有限,所以在执行递增
c
之前关闭最后一个文件可能很重要。另外:+1。这是一个伟大的。。。卡拉卡法等分。我有预感阿克会来营救的。如何将此扩展到我选择的计数?假设一个文件中的批数为x。它取决于内容,您将获得与文件中模式计数相同的分割文件数。或者,也许你在问别的问题?我们很接近。我想问的是,我们现在是否可以将它们分成5个模式匹配,然后写入一个文件。类似于awk'/HDR/{c+5}{print>FILENAME“\uu”c}”文件,好像在找到一定数量的匹配项之前,我不会写入分割的文件。@karakfa因为文件描述符的数量有限,所以在执行递增
c
之前关闭最后一个文件可能很重要。另外:+1.StackOverflow是关于帮助人们修复编程代码的。对免费编码服务、教程、研究、工具、建议、库和代码的请求是离题的。在这里发布更多Qs之前,请阅读、、和。给我们看看你的代码!祝你好运。StackOverflow是关于帮助人们修复编程代码的。对免费编码服务、教程、研究、工具、建议、库和代码的请求是离题的。在这里发布更多Qs之前,请阅读、、和。给我们看看你的代码!祝你好运