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
    }
}
Другие вопросы по тегам