PowerShell - Найти и скопировать URL-адрес из текстового файла и скопировать в другой текстовый файл, разделенный на Pipe
Мне нужен скрипт Powershell, который читает данный файл для любого вхождения ключевых слов "Match: " и "Replace: " и копирует строку перед ним в новую строку в другом текстовом файле, отделенную и оканчивающуюся конвейером. Пример ниже.
вход
20/01/2016 00:00:18 Some Lines of Text here
20/01/2016 00:00:18 Some Lines of Text here
20/01/2016 00:00:18 Match: /test/OLD/Myfolders/Folders/Folder1/
20/01/2016 00:00:19 Replace: /test2/NEW/currentfiles/
20/01/2016 00:00:19 Some Lines of Text here
20/01/2016 00:00:20 Some Lines of Text here
20/01/2016 00:00:20 Some Lines of Text here
20/01/2016 00:00:20 Match: /match/2015/pages/
20/01/2016 00:00:20 Replace: /replace/2016/pages/
20/01/2016 00:00:21 Some Lines of Text here
Выход
/test/OLD/Myfolders/Folders/Folder1/|/test2/NEW/currentfiles/|
/match/2015/pages/|/replace/2016/pages/|
поэтому каждый раз, когда ключевое слово "Match: " найдено, URL перед ним копируется в новую строку в новом текстовом файле, за которой следует pipe и URL перед "Replace: "
/Matching URL/|/Replacing URL/|
/Matching URL/|/Replacing URL/|
1 ответ
Решение
Вы можете попробовать это:
Get-Content input.txt | ForEach-Object {
if ($_.tostring().Contains("Match")) {
$i = $_.tostring().IndexOf("Match")
$url = $_.ToString().Substring($i+7).Trim() + "|"
} elseif ($_.tostring().Contains("Replace")) {
$i = $_.ToString().IndexOf("Replace")
$url = $url + $_.ToString().Substring($i+9).Trim() + "|"| Out-File ouput.txt -Append
$url = $null
}
}