1

У меня есть текстовый файл, который имеет около 20000 идентификаторов электронной почты. Я хочу узнать количество адресов электронной почты отдельно от gmail, yahoo, ymail, googlemail, aol, live, custom domain, gmx и других временных писем. А также мне нужно отфильтровать их и отсортировать их в порядке почтового домена. Как я могу сделать это с помощью блокнота ++? Если любая другая программа делает это намного проще, чем notepad ++, пожалуйста, обращайтесь и к этому.

1 ответ1

1

Я бы сделал это в Excel

Скопируйте список в столбец A Excel. Excel позволит вам сортировать (и при необходимости удалять дубликаты).

Оттуда этот макрос сделает это

Sub DoTheThing()

Range("C:D").Cells.ClearContents

Dim row As Integer
row = 1

Do While (Range("A" & row).Value <> "")

    Dim emails() As String
    emails = Split(Range("A" & row).Value, "@")
    Dim domain As String

    Dim i As Integer

    'domain = emails(1)         commented out. Use this line if you want to include .com or .net
    domain = Split(emails(1), ".")(0)   'use this line if you want just the provider, such as GMAIL or Yahoo

    Dim resultsRow As Integer
    resultsRow = 1

    Dim resultExists As Boolean
    resultExists = False

    Do While (Range("C" & resultsRow).Value <> "")

        If (Range("C" & resultsRow).Value = domain) Then
            Range("D" & resultsRow).Value = Range("D" & resultsRow).Value + 1  ' add 1
            resultExists = True
        End If

    resultsRow = resultsRow + 1
    Loop

    If (resultExists = False) Then
        Range("C" & resultsRow).Value = domain
        Range("D" & resultsRow).Value = 1
    End If


row = row + 1

Loop

End Sub

Код выше предполагает, что ваш первоначальный список состоит из строчных букв

Снимки экрана до и после, показывающие случаи провайдера

До

После

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .