#powershell
#powershell
Вопрос:
У меня есть текстовый файл под названием «delete.txt «. Содержимое
My name is "David", "David"
Я хочу заменить второе «Дэвид» на «Привет». Я могу заменить их оба только этим:
$David = Get-Content -path C:UsersDavidDocumentsdelete.txt
$David -replace "David", "Hello" | Out-File C:UsersDavidDocumentsdelete.txt
В файле может быть больше «David», но я просто хочу заменить второй.
Комментарии:
1. Таким образом, вы также можете искать запятую перед «David». Или вы ищете «David», за которым следует конец строки. Это зависит от того, как выглядит ваш входной файл.
2. @Olaf. Thansk такой способ мышления на самом деле решает мою проблему 🙂 Но просто из любопытства, есть ли способ найти позицию начала двух «Дэвидов»
3. Конечно… взгляните на командлет Select-String
Ответ №1:
Вы можете просто сделать:
$David -replace '"David", "David"','"David", "Hello"' | Out-File C:UsersDavidDocumentsdelete.txt
Комментарии:
1. Это тоже работает, спасибо. Комментарий от from Olaf тоже работает… Также ваш вчерашний ответ мне очень помог, особенно трюк со скобками