基于模式在Linux上拆分文件

时间:2017-05-18 02:44:05

标签: file unix awk split

需要一个快速的Linux提示。

我有一个文件,同时有多个记录的批次。

喜欢

public static void StartUp()
{
    XmlDictionaryReaderQuotas quota = new XmlDictionaryReaderQuotas();
    quota.MaxArrayLength = 2147483647;
    quota.MaxBytesPerRead = 2147483647;
    quota.MaxDepth = 2147483647;
    quota.MaxNameTableCharCount = 2147483647;
    quota.MaxStringContentLength = 2147483647;
    EndpointAddress addr = new EndpointAddress(new Uri("http://127.0.0.1/CX/CX.svc"));

    WSHttpBinding binding1 = new WSHttpBinding();
    binding1.Name = "WSHttpBinding_ICX";
    binding1.MaxReceivedMessageSize = 1073741824;
    binding1.ReaderQuotas = quota;

    // Globals.CXClient is the client object
    Globals.CXClient = new CXService.CXClient(binding1, addr);

    // This line does not compile! Endpoint is read-only!!
    Globals.CXClient.Endpoint = new ServiceEndpoint(new ContractDescription("CXService.ICX"), (Binding)binding1, addr);
}

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

以这种方式,如果我在文件中有100个批处理,我需要将其分成4个文件25个。

1 个答案:

答案 0 :(得分:2)

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       
相关问题