Я думаю, что получил это, но мне пришлось угадать некоторые вещи на входе.
Это то, что я использовал для ввода
google.com
yahoo.com
netflix.com
Это модифицированный PowerShell, который я использовал,Если строка во входных данных не совпадает с шаблоном в начале строки, она заменит текущую строку текстом замены, включая шаблон.Затем он ищет индекс исходной строки во входных данных и заменяет ее.Наконец он записывает все обратно в исходный файл.
$content = Get-Content "C:\path\to\file\test.txt"
$pattern = "^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|tcp:\/\/|ssl:\/\/)"
$content | ForEach-Object {
if ($_ -notlike $pattern +"*") {
#Write-Host "^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|tcp:\/\/|ssl:\/\/)" + $_
$replaceText = $_ -replace "^$_$", "$pattern$_"
$content[($content.IndexOf("$($content -like "$_")"))] = $replaceText
}
}
$content | Set-Content "C:\path\to\file\test.txt"
Вывод файла обновления:
^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|tcp:\/\/|ssl:\/\/)google.com
^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|tcp:\/\/|ssl:\/\/)yahoo.com
^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|tcp:\/\/|ssl:\/\/)netflix.com