Есть ли простой способ, как преобразовать текст в последнем столбце (8), если последние 3 символа строки "-TA" Так, например, если текстовая строка в последнем столбце "AB-TA", он будет преобразовывать текст в "AB. НЕТ "Если строка" -TA "не находится в конце последнего столбца (последние 3 символа), то никаких изменений не производится.В тестовом файле нет заголовка. Пожалуйста, смотрите пример данных ниже.

Спасибо за любое предложение.

test.txt Ввод:

04/02/2014,4.620,4.620,4.400,4.580,166535,0,A
04/02/2014,5.740,5.820,5.530,5.750,516280,0,AB
04/02/2014,48.950,49.190,48.060,48.690,205951,0,AB-TA
04/02/2014,62.670,62.760,62.440,62.640,514203,0,CD
04/02/2014,25.020,25.060,24.750,24.810,159602,0,CD-TA

выход test.txt

04/02/2014,4.620,4.620,4.400,4.580,166535,0,A
04/02/2014,5.740,5.820,5.530,5.750,516280,0,AB
04/02/2014,48.950,49.190,48.060,48.690,205951,0,AB.NO
04/02/2014,62.670,62.760,62.440,62.640,514203,0,CD
04/02/2014,25.020,25.060,24.750,24.810,159602,0,CD.NO

1 ответ1

0

Вы можете использовать привязку регулярного выражения $ чтобы соответствовать только символам конца строки:

Get-Content in.txt|
ForEach-Object {$_-replace'-TA$','.NO'}|
Set-Content out.txt

Если вы хотите сохранить результаты в одном файле, то вам необходимо предварительно загрузить весь файл в память:

@(Get-Content test.txt)|
ForEach-Object {$_-replace'-TA$','.NO'}|
Set-Content test.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .