Como substituir o texto na última coluna?

0

Existe uma maneira fácil de converter texto na última coluna (8) se os últimos 3 caracteres da string forem "-TA" Assim, por exemplo, se a string de texto na última coluna for "AB-TA", ele converterá texto em "AB.NO" Se a string "-TA" não estiver no final da última coluna (últimos 3 caracteres), nenhuma alteração será feita.Não há cabeçalho no arquivo de teste. Por favor, veja os dados da amostra abaixo.

Obrigado por qualquer sugestão.

test.txt Entrada:

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 Saída

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
    
por jojo585 11.02.2015 / 03:53

1 resposta

0

Você pode usar a âncora de expressão regular $ para corresponder apenas aos caracteres de fim de linha:

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

Se você quiser salvar os resultados no mesmo arquivo, precisará pré-carregar o arquivo inteiro na memória:

@(Get-Content test.txt)|
ForEach-Object {$_-replace'-TA$','.NO'}|
Set-Content test.txt
    
por 11.02.2015 / 04:10