substitui ponto final por vírgula

0

Para os valores abaixo eu tenho que substituir o segundo e quarto "." por "," no arquivo abaixo

entrada

1.351364711.103.7319660.2010-01-01 00:00:00
1.345529841.103.7372875.2010-01-01 00:00:49
1.342955629.103.7455272.2010-01-01 00:01:42
1.339694956.103.7520503.2010-01-01 00:02:28

output intermediário desejado

    1.351364711,103.7319660,2010-01-01 00:00:00
    1.345529841,103.7372875,2010-01-01 00:00:49
    1.342955629,103.7455272,2010-01-01 00:01:42
    1.339694956,103.7520503,2010-01-01 00:02:28

Eu sei que awk gsub(/./,",") substitui tudo por vírgula. Mas eu só preciso que as colunas sejam separadas por ",". Eu também queria mudar a terceira coluna em primeiro lugar depois disso.

resultado final desejado

2010-01-01 00:00:00,1.351364711,103.7319660
2010-01-01 00:00:49,1.345529841,103.7372875
2010-01-01 00:01:42,1.342955629,103.7455272
2010-01-01 00:02:28,1.339694956,103.7520503
    
por RKR 10.02.2017 / 03:19

1 resposta

2
bash-4.1$ cat file
1.351364711.103.7319660.2010-01-01 00:00:00
1.345529841.103.7372875.2010-01-01 00:00:49
1.342955629.103.7455272.2010-01-01 00:01:42
1.339694956.103.7520503.2010-01-01 00:02:28

bash-4.1$ awk -F. '{print $NF,$1"."$2,$3"."$4}' OFS=, file
2010-01-01 00:00:00,1.351364711,103.7319660
2010-01-01 00:00:49,1.345529841,103.7372875
2010-01-01 00:01:42,1.342955629,103.7455272
2010-01-01 00:02:28,1.339694956,103.7520503
    
por 10.02.2017 / 04:43

Tags