Powershell - 读取单个文本文件并根据行内的文本将内容排序到多个文件
Powershell - Read a single text file and sort contents to multiple files based on text within the line
我正在寻找有关如何逐行读取文件,然后根据搜索条件将行复制到新创建的文件的指导。由于我的描述可能很差,我尝试在下面进行说明:
Single Text File Sample:
Name=N0060093G
Name=N0060093H
Name=N400205PW
Name=N400205PX
Name=N966O85Q0
Name=N966O85Q1
脚本将读取每一行并在 "Name=N"
之后使用 "###"
在标识符后创建一个新文件名,"###"
将每个适当的行复制到新文件.因此,行 "Name=N0060093G"
和 "Name=N0060093H"
将转到“006.txt”; "Name=N400205PW"
和 "Name=N400205PX"
将写入“400.txt”等
RegEx 风格的方法:
$File = 'test.txt'
Get-Content $File | ForEach {
If ($_ -match '^Name\=N(?<filename>\d{3}).*') {
$_ | Out-File -Append "$($Matches.Filename).txt" -WhatIf
}
}
我正在寻找有关如何逐行读取文件,然后根据搜索条件将行复制到新创建的文件的指导。由于我的描述可能很差,我尝试在下面进行说明:
Single Text File Sample:
Name=N0060093G
Name=N0060093H
Name=N400205PW
Name=N400205PX
Name=N966O85Q0
Name=N966O85Q1
脚本将读取每一行并在 "Name=N"
之后使用 "###"
在标识符后创建一个新文件名,"###"
将每个适当的行复制到新文件.因此,行 "Name=N0060093G"
和 "Name=N0060093H"
将转到“006.txt”; "Name=N400205PW"
和 "Name=N400205PX"
将写入“400.txt”等
RegEx 风格的方法:
$File = 'test.txt'
Get-Content $File | ForEach {
If ($_ -match '^Name\=N(?<filename>\d{3}).*') {
$_ | Out-File -Append "$($Matches.Filename).txt" -WhatIf
}
}