substituir vírgula no valor da coluna específica

0

Eu tenho um arquivo que contém 6 colunas, cada campo separado por "I" a segunda última coluna contém campo de quantidade.

140121059|01/01/201400:00:45|[1390]|[387]|17.64|10
140121060|01/01/201400:00:46|[1112]|[867]|26.46|10
140121062|01/01/201400:00:47|[182]|[13]|4,117.60|10
140121065|01/01/201400:00:48|[1088]|[385]|1,147.04|10

Desejo remover "," da coluna de valor, pois não consigo colocar algumas operações nessa coluna. "," não está vindo em todas as colunas. E estou usando o bash.

    
por pradeep 29.07.2014 / 18:47

3 respostas

2

Você pode usar awk :

$ awk -F'|' '{sub(",","",$(NF-1))}1' OFS='|' file
140121059|01/01/201400:00:45|[1390]|[387]|17.64|10
140121060|01/01/201400:00:46|[1112]|[867]|26.46|10
140121062|01/01/201400:00:47|[182]|[13]|4117.60|10
140121065|01/01/201400:00:48|[1088]|[385]|1147.04|10

$(NF-1) refere-se ao segundo ao último campo, apenas substituímos a vírgula neste campo.

Se você quiser remover a vírgula em todos os campos, use tr :

$ <file tr -d ',' > out_file 
    
por 29.07.2014 / 18:51
0

Supondo que seu arquivo contenha vírgula somente no campo amount , você pode usar o comando como abaixo.

 sed 's/,//g' filename
    
por 29.07.2014 / 18:53
0

Gostaria apenas de usar o sed:

sed 's/,//g' filename
    
por 29.07.2014 / 18:54