@doitagain

Как убрать лишний знак после запятой в наборе тиковых данных для биржевого инструмента?

Ребята привет. У меня есть тиковые данные для биржевой акции в виде:

дата,время,цена,спрос,предложение,объём

09/28/2009,09:10:37,35.6,35.29,35.75,150
09/28/2009,09:30:06,35.48,35.34,35.64,14900
09/28/2009,09:30:06,35.49,35.37,35.61,100
09/28/2009,09:30:10,35.4,35.4,35.57,100
09/28/2009,09:30:10,35.48,35.43,35.53,200
09/28/2009,09:30:11,35.459,35.44,35.56,200
09/28/2009,09:30:14,35.569,35.49,35.57,100

разделитель - запятая

В двух последних строках цена после плавающей точки имеет три знака.
Мне необходимо избавится от этого третьего знака, чтобы эти строки приняли вид:

09/28/2009,09:30:11,35.45,35.44,35.56,200
09/28/2009,09:30:14,35.56,35.49,35.57,100

и так во всём текстовом файле размером > 1ГБ

Спасибо.

PS. Linux не боюсь, даже овладел командой: sed -e 's/x/y/g' 1.txt > 2.txt
  • Вопрос задан
  • 2489 просмотров
Решения вопроса 1
@xandox
/tmp$ cat test.awk
{
    P=$3
    PS=sprintf("%.2f", P)
    for (i = 1; i <= NF; ++i) {
        if (i != 1) printf FS
        if (i != 3) { printf $i } else { printf PS }
    }
    printf "\n"
}
/tmp$ cat test.txt | awk -f test.awk -F,
09/28/2009,09:10:37,35.60,35.29,35.75,150
09/28/2009,09:30:06,35.48,35.34,35.64,14900
09/28/2009,09:30:06,35.49,35.37,35.61,100
09/28/2009,09:30:10,35.40,35.4,35.57,100
09/28/2009,09:30:10,35.48,35.43,35.53,200
09/28/2009,09:30:11,35.46,35.44,35.56,200
09/28/2009,09:30:14,35.57,35.49,35.57,100
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@doitagain Автор вопроса
Спасибо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы