![]() |
Парсинг файла.txt
Емеется файл
вида
ListName: Group1
Members: Ivan Ivanov, Petr Petrov, Sidor Sidorov ListName: Group2 Members: Petr Petrov, Semen Semenov,Dormidont Dormidontov ListName: Group3 Members: ListName: Group4 Members: Ivan Ivanov, Group2, Elena Naprimer-Premudraya В "Members" каждая запись указана через запятую, но может продолжаться на следующей строке (например как "Dormidont Dormidontov"), есть несколько двойных фамилий (например "Elena Naprimer-Premudraya"). Есть несколько пустых (как в Group3). Нужно сформировать файлы с именем указанным в ListName (напр. Grpoup1.txt, Group2.txt), и забить их содержимым "Members" для каждой записи - новая строка. Примерно так (для Group1.txt)
Ivan Ivanov
Petr Petrov Sidor Sidorov Начал ваять в cmd, но что-то не идет, а в posh я что-то как-то не особо... |
Elven, сделать можно, но муторно. Чем этот файл был создан?
|
Iska, коллега выдрал из почтовика (domino), это уже файл подкорректирован, изначально он выглядел еще страшнее.
|
Код:
(gc 1.txt) -join " " -split "ListName: " | ? {$_ -match "^(.+) Members: (.+)$"} | % { |
Сработало на раз. Только у файлов лишний пробел перед именем образовался, но это во-первых пофиг, во-вторых решается с полпинка. Спасибо.
|
Время: 11:43. |
Время: 11:43.
© OSzone.net 2001-