Powershell - чтение одного текстового файла и сортировка содержимого по нескольким файлам на основе текста в строке
Я ищу направление для чтения файла построчно, а затем копирую строку, основанную на критериях поиска, во вновь созданный файл. Поскольку мое описание, вероятно, плохое, я попытался проиллюстрировать это ниже:
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" и т. д.
1 ответ
Решение
Подход в стиле RegEx:
$File = 'test.txt'
Get-Content $File | ForEach {
If ($_ -match '^Name\=N(?<filename>\d{3}).*') {
$_ | Out-File -Append "$($Matches.Filename).txt" -WhatIf
}
}