Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Парсинг файла.txt

Ответить
Настройки темы
PowerShell - [решено] Парсинг файла.txt

Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Емеется файл
вида
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 я что-то как-то не особо...

Отправлено: 13:22, 29-11-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Elven, сделать можно, но муторно. Чем этот файл был создан?

Отправлено: 13:40, 29-11-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Iska, коллега выдрал из почтовика (domino), это уже файл подкорректирован, изначально он выглядел еще страшнее.

Отправлено: 13:49, 29-11-2017 | #3


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
(gc 1.txt) -join " " -split "ListName: " | ? {$_ -match "^(.+) Members: (.+)$"} | % {
	Out-File "$($matches[1]).txt" -InputObject $matches[2].replace(", ","`r`n")
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:53, 29-11-2017 | #4


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Сработало на раз. Только у файлов лишний пробел перед именем образовался, но это во-первых пофиг, во-вторых решается с полпинка. Спасибо.

Отправлено: 14:09, 29-11-2017 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Парсинг файла.txt

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Парсинг txt и отправка результата на php гейт bugmenot3 Скриптовые языки администрирования Windows 11 15-10-2014 18:11
VBS/WSH/JS - Парсинг файла pogo Скриптовые языки администрирования Windows 1 20-09-2013 11:57
CMD/BAT - Парсинг XML/TXT mxm199 Скриптовые языки администрирования Windows 10 17-07-2012 12:34
Java - Парсинг doc-файла Hector Программирование и базы данных 7 15-03-2012 21:37
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. OSArev Скриптовые языки администрирования Windows 2 30-01-2011 11:58




 
Переход