PowerShell не жадный заменить до шаблона
У меня есть файл с несколькими строками, как показано в примере ниже, но мне нужно, чтобы символы, указанные в шаблоне, присутствовали в выходных данных, другими словами, не жадное совпадение.
Мне нужен способ удалить первую часть строки и получить строку, которая начинается с "07" или "08" и всего в строке до конца строки.
Пример:
- Ввод: "ВЫБЕРИТЕ TZ_OFFSET (SESSIONTIMEZONE) ИЗ ДВОЙНОГО 07.16.0162 (B0375, U0847)"
- выход: 16.07.0162 (B0375, U0207)
- Вход: "ВЫБЕРИТЕ TZ_OFFSET (SESSIONTIMEZONE) ИЗ ДВОЙНОГО 08.15.0162 (B03075, U07)"
- выход: 15.08.0162 (B08075, U07)
2 ответа
Это должно работать:
$str = 'SELECT TZ_OFFSET (SESSIONTIMEZONE) FROM DUAL07.16.0162 (B0375, U0847)'
$str -replace '^.*?DUAL(.*)$','$1'
New-Variable -Name file -Value "c:\abc.txt" #This file contains the line that needs to be edited
(Get-Content -Path $file) -replace '^.*?DUAL(.*)$','$1'|set-content $file