2013-12-10 5 views
0

Я использую скрипт Find and Replace, найденный в StackOverflow.powershell заменить «ID = длинный номер»

Get-Content test.txt | ` 
ForEach-Object { $_ -replace "foo", "bar" } | ` 
Set-Content test2.txt 

и до тех пор, пока я ищу foo и хочу заменить его баром, это отлично работает.

Моя проблема заключается в том, что я хочу заменить ID = "123456789", где цифры различаются каждый раз. Поэтому единственное, что я точно знаю, это то, что я хочу найти «ID =», а остальное - переменное. Когда я использую своего хорошего друга, чтобы найти ответ на этот вопрос, я ничего не получаю, потому что в нем есть переменная слова.

ответ

2

Первый аргумент -replace opeartor является регулярным выражением, так:

Get-Content test.txt | 
ForEach-Object { $_ -replace "ID=\d+", "bar" } | 
Set-Content test2.txt 

Кроме того, оператор -replace будет работать так же хорошо на массиве, так что если ваш файл действительно большой вы можете также сделайте следующее:

(Get-Content test.txt) -replace "ID=\d+", "bar" | Set-Content test2.txt 
+0

Благодарим вас за ответный ответ! Я проверю это, но возможно ли изменить «бар» на текущий «yearmonthday_hourminute», что было бы здорово! – user3088972

Смежные вопросы