Мой файл состоит из следующих данных (без заголовка)
DEPOSIT ADD 123456789 (VALUE)(VARIABLE) NNNN VALUEVARIABLE
DEPOSIT ADD 234567890 (VALUE)(P75) NNNN VALUEVARIABLE
DEPOSIT ADD 345678901 (VALUE)(VARIABLE) NNNN VALUEVARIABLE
Это текстовый файл с разделителями табуляции. Всего 5 столбцов. (123456789 (VALUE) (VARIABLE) - столбец с одним значением)
Мои требования:
- Мне нужно получить только строку, содержащую P75 , чтобы обновить в том же файле.
- Я должен заменить значения в Col3, Col4 и Col5 после получения P75 другие строки не должны быть затронуты.
из От
DEPOSIT ADD 234567890 (VALUE)(P75) NNNN VALUEVARIABLE
до
DEPOSIT ADD 234567890 (VTG)(SPVTG) TCM VTGSPVTG
Только записи, содержащие P75, должны обновляться таким образом. Значения замены одинаковы для всех выбранных записей.
Мой сценарий, который я написал:
$original_file='C:\Path\20200721130155_copy.txt' -header Col1,Col2,Col3,Col4,Col5,| Select Col3,Col4,Col5
(Get-Content $original_file) |ForEach-Object {
if($_.Col3 -match '(VALUE)(P75)')
{
$_ -replace '(VALUE)(P75)', '(VTG)(SPVTG)' `
-replace 'VALUEVARIABLE', 'VTGSPVTG' `
-replace 'NNNN', 'TCM' `
}
$_
}| Set-Content $original_file+'_new.txt' -Force
Я получаю выходной файл с таким же содержимым. Файл не обновляется.
Пожалуйста, посоветуйте.
Спасибо