Безумно всю неделю не мог решить эту проблему. У меня есть файл словарных слов, который будет состоять из нескольких миллионов слов в одном месте, а теперь давайте предположим, что это просто текстовый файл "Words.txt", который имеет:
App
Apple
Application
Bar
Bat
Batter
Cap
Capital
Candy
Что мне нужно сделать, это сопоставлять каждую строку с остальной частью файла и записывать только выходные данные первого попадания. Это будет в алфавитном порядке.
Пример желаемого вывода из слов выше будет:
App - due to pattern "App" being seen first and skips "Apple" and "Application
Bar - due to pattern "Bar", unique
Bat - due to pattern "Bat" being seen first and skips "Batter"
Cap - due to pattern "Cap" being seen first and skips "Capital"
Candy - due to pattern "Candy", unique
Что я абсолютно не могу понять, как это сделать, как игнорировать совпадения, которые происходят после первоначального нажмите и перейдите к «новому» шаблону. Было бы хорошо, если бы другие избыточные шаблоны были перезаписаны или просто пропущены, не имеет значения, как.
У меня есть сценарий для сопоставления шаблонов, но я не знаю, как получить желаемый результат :( Любая помощь?!? !
$Words = "C:\Words.txt"
[System.Collections.ArrayList]$WordList = Get-Content $Words
$Words
$Words2 = $Words
$i = 0
$r = 0
Foreach ($item in $Words)
{
foreach ($item2 in $Words2)
{
if ($item2 -like "$item*")
{
write-host $("Match " + [string]$i + " " + $item + " " + [string]$r + " " + $item2)
}
$r++
}
$i++
}