Como remover nanossegundos do arquivo

0

Como posso remover nanossegundos de todas as linhas de um arquivo? dados parece filename é test.csv

ip,time,name
1.1.1.1,2018-08-17 15:05:52:016469121,1.13.0-0007
1.1.1.2,2018-08-17 15:05:52:016469121,1.13.0-0007
    
por Syed Rizvi 17.08.2018 / 11:51

2 respostas

0

Tente

sed 's/:[[:digit:]]*,/,/' file
ip,time,name
1.1.1.1,2018-08-17 15:05:52,1.13.0-0007
1.1.1.2,2018-08-17 15:05:52,1.13.0-0007

substituirá os últimos dois pontos, os dígitos seguintes e a vírgula final com apenas a vírgula.

    
por 17.08.2018 / 12:17
0
awk -F',' -vOFS=',' '{sub(/:[0-9]{9}$/, "", $2); print}' input.txt

Saída:

ip,time,name
1.1.1.1 2018-08-17 15:05:52 1.13.0-0007
1.1.1.2 2018-08-17 15:05:52 1.13.0-0007

Explicação

  • awk -F',' -vOFS=',' '{foo}' input.txt : use awk com o separador de campos (e o separador do campo de saída) , , executando comandos foo , no arquivo input.txt .
  • sub(/:[0-9]{9}$/, "", $2); : para o segundo campo $2 , substitua a expressão regular :[0-9]{9}$ (ou seja, nove dígitos seguidos no final do campo) por nada.
  • print : imprima a nova linha
por 17.08.2018 / 12:13