2015-11-04 41 views
0

我擁有一個由5000個頁面組成的巨大文本文件。 我需要解析這個單個文本文件並創建單獨的文件。分頁符需要在包含文本'語句結束'的每個部分發生。在Windows 7中將單個文本文件解析爲單獨的文件

我是相當新的PowerShell腳本,因此將嚴重需要幫助。

請寄給我一個腳本,我將以一種方式引導我,讓我可以對代碼進行翻新以便爲我工作。

回答

1

我'要避免「你怎麼嘗試,到目前爲止等等」。通用問題需要一般答案:

使用Get-Content cmdlet加載您的文本文件,然後將其管道到Select-String以過濾線條,那麼取決於您!

​​

您也可以嘗試RegEx multilined分隔多行(您的網頁)。

然後你可以使用Set-Content到xrite到另一個文件。

+0

謝謝...但過濾後...如何創建子文件 –

+0

然後,您可以使用設置內容。 – JPBlanc

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文件在同一個地方。

+0

感謝ATP! 。當我改造代碼時,它不會根據「語句結束」的分頁符條件將文件分成多個文件。它只是創建一個文件1.txt幷包含所有數據。只是想提到我正在使用PS版本3 –

相關問題