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

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

Ответить
Настройки темы
PowerShell - Сортировка e-mail по доменам

Старожил


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

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


Всем привет!
Имеется текстовый файл, содержащий строки с адресами e-mail. К примеру, такого содержания:

Код: Выделить весь код
felix.doebele@web.de:Привет
romina.wilhelm@web.de:Как дела?
katrin.wink@gmx.de:Когда приедешь?
arnold@vfw.de:Я дома
beatebeauty@freenet.de:Завтра буду
Пытаюсь отсортировать строки по доменам e-mail. Такой код:

Код: Выделить весь код
$addresses = @()
Get-Content .\test.txt -Encoding utf8 | % {
  $n = $($_ -split '@')[0]
  $d = $($_ -split '@')[1]
  $o = New-Object PSObject -property @{name=$n;domain=$d;email=$_}
  $addresses += ,$o
}
$addresses | sort domain,name | select -ExpandProperty email
работает правильно, сортирует как надо. На выходе:

Код: Выделить весь код
beatebeauty@freenet.de:Завтра буду
katrin.wink@gmx.de:Когда приедешь?
arnold@vfw.de:Я дома
romina.wilhelm@web.de:Как дела?
felix.doebele@web.de:Привет
Но очень уж долго. Особенно на больших файлах.
Может кто подскажет, как можно оптимизировать код для более продуктивного решения этой задачи ? Заранее благодарен за помощь и подсказки!

Отправлено: 09:13, 29-06-2024

 

Аватара для YuS_2

Crazy


Contributor


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

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


Код: Выделить весь код
$f = 'test.txt'
(gc $f -enc utf8 -raw) -split "`n"|sort{($_ -split '@')[1]}

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:06, 29-06-2024 | #2



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

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


Старожил


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

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


YuS_2, спасибо большое! Ваш код работает гораздо быстрее.

Отправлено: 14:13, 29-06-2024 | #3


Deadooshka


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

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


Литеральные массивы не используют для динамического заполнения. В итерации каждый раз создаётся новый массив, а старый остаётся в памяти до уборки мусора. Как минимум массив нужен динамический, например $addresses = [Collections.ArrayList]::new(), который заполняется в итерации [void]$addresses.add($o).
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:12, 29-06-2024 | #4


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Sham:
[Collections.ArrayList] »
дополню:
От ArrayList отказываются в пользу универсального List[]
Код: Выделить весь код
using namespace System.Collections.Generic
$lst1 =[list[int]]@(1,2,3)
$lst2 =[list[object]]@(1,2,'abc')
ну и раз уж речь зашла о массивах, то:
всё, что вы хотели знать о массивах

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:36, 30-06-2024 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
V. 2010 - Получение статистики от кого приходит почта на Exchange по доменам clash77 Microsoft Exchange Server 1 20-05-2016 16:02
V. 2013 - [решено] Статистика входящих писем по обслуживаемым доменам meateron Microsoft Exchange Server 3 02-03-2016 16:30
CMD/BAT - Сортировка по доменам bboutte Скриптовые языки администрирования Windows 3 30-05-2014 20:29
CMD/BAT - сортировка файлов по папкам по дате в названии insearches Скриптовые языки администрирования Windows 1 03-02-2013 17:03
Несколько вопросов по хостингу, доменам и установке основного dns на сервере Mad Mouse Вебмастеру 3 17-12-2004 13:26




 
Переход