我有一个包含 60K+ 行的文本文件。这 60K+ 行实际上是用 Natural 编写的大约 50 个左右的程序。我需要将它们分成单独的程序。我有一个脚本可以完美地解决一个缺陷。输出文件的命名。
每个程序都以“Module Name=”开头,后跟程序的实际名称。我需要拆分程序并使用实际的程序名称保存它们。
使用下面的示例,我想创建两个名为 Program1.txt 和 Program2.txt 的文件,每个文件都包含属于它们的行。我有一个脚本,也在下面,可以正确分隔文件,但我无法辨别捕获程序名称并将其用作输出文件的名称的正确方法。
例子:
Module Name=Program1
....
....
....
END
Module Name=Program2
....
....
....
END
代码:
$InputFile = "C:\Natural.txt"
$Reader = New-Object System.IO.StreamReader($InputFile)
$a = 1
While (($Line = $Reader.ReadLine()) -ne $null) {
If ($Line -match "Module Name=") {
$OutputFile = "MySplittedFileNumber$a.txt"
$a++
}
Add-Content $OutputFile $Line
}