从Unix中的文件中选择一系列记录

时间:2014-11-17 07:58:30

标签: unix

我在unix中的文件文本文件中有4,930,728条记录。此文件用于使用批处理程序将映像提取到Oracle Web中心内容。 <<EOD>>表示根据以下示例结束记录。

我有两个问题

  1. 在处理4,900,728条记录中的4,300,846条后,批处理程序无法解决任何问题。现在我想创建一个记录从4,300,846到4,930,728的新文件。我该如何做到这一点?

  2. 我想将包含4930728条记录的文本文件拆分为多个文件,每个文件包含(1,000,000)条记录,例如:文件1包含0到10,000,000的记录。第二个文件包含1,000,001到20,000,000之间的记录,依此类推。我如何实现这一目标?

  3. 文件名:load_images.txt

    Action = insert
    
    DirectReleaseNewCheckinDoc=1
    
    dUser=Biometric
    
    dDocTitle=333_33336145454_RT.wsq
    
    dDocType=Document
    
    dDocAuthor=Biometric
    
    dSecurityGroup=Biometric
    
    dDocAccount=Biometric
    
    xCUSTOMER_MSISDN=33333
    
    xPIN_REF=64343439
    
    doFileCopy=1
    
    fParentGUID=2CBC11DF728D39AEF91734C58AE5E4A5
    
    fApplication=framework
    
    primaryFile=647229_234343145454_RT.wsq
    
    primaryFile:path=/ecmmigration_new/3339_2347333145454_RT.wsq
    
    xComments=Biometric Migration from table OWCWEWW_MIG_3007
    
    <<EOD>>
    

1 个答案:

答案 0 :(得分:0)

回答#1:

head -n 4930728 myfile.txt | tail -n $(echo "4930728 - 4300846" | bc)

回答#2 - 将文件拆分为1000 0000行:

split -l 10000000 myfile.txt ### It will create file like xaa,xab and so on