将单个文本文件解析为Windows 7中的单独文件

时间:2015-11-04 04:41:54

标签: powershell

我有一个巨大的文本文件,包含5000页。 我需要解析这个单个文本文件并创建单独的文件。分页符需要在包含文本'语句结束'。

的每个部分发生

我对Powershell脚本相当新,因此非常需要帮助。

请寄给我一个脚本,我将以一种我可以改进代码为我工作的方式指导我。

2 个答案:

答案 0 :(得分:1)

我将避免"到目前为止你尝试了什么..."。通用问题需要通用答案:

使用Get-Content cmdlet加载文本文件,然后将其传输到Select-String以过滤行,然后由您决定!

Get-content "path_to_your_file" | Select-String -Pattern "your_filter"

您还可以尝试RegEx multilined分隔多行(您的网页)。

然后您可以使用Set-Content xrite到另一个文件。

答案 1 :(得分:1)

正如您所说,您不熟悉PowerShell,您可以通过以下脚本来理解逻辑并根据您的理解进行改进:

$data =  Get-Content ".\Test.txt" #Reading file
$fileIndex = 1; #To create file name
for($itr = 0; $itr -le $data.Length; $itr++){    

    #if line is "End of Statement"
    if($data[$itr] -eq "End of Statement"){ 
        $fileIndex+=1;
        continue;
    }   

    #Check if file exists otherwise create one
    if((Test-Path "$pwd\$fileIndex.txt") -eq $false){
        New-Item "$pwd\$fileIndex.txt" -ItemType "File" 
    }

    #Append text to the file
    Add-Content "$pwd\$fileIndex.txt" $data[$itr]
}

Test.txt的内容如下所示:

This is text in part1
This is text in part1
End of Statement
This is text in part2
This is text in part2
This is text in part2
End of Statement
This is text in part3
This is text in part3
End of Statement
This is text in part4
End of Statement
This is text in part5
End of Statement
This is text in part6
This is text in part6

它将创建名称为1.txt,2.txt的文件,依此类推。 要执行,请将.ps1和.txt文件保存在同一位置。