ibash.org.ru - Новый цитатник Рунета

Форум: Хелп с укорочением float'ов. [RSS]

Форум: Вход Регистрация Участники Поиск RSS

унылый тролль
17.10.2009 - 23:49

Здравствуйте, люди!
Как, используя стандартные тулзы линуха, укоротить все floa'ы до двух значений после точки в файле, где ~2000 таких линий за очень короткое время? Всё, что у меня получилось набыдло^Wкодить, очень медленное.
Формат всех линий:
Function_name(int,float,float,float,float,int,int,int);

Заранее спасибо за помощь.

Xenius
#1 - 18.10.2009 - 10:51

Попробуй так: cat file | sed 's/(\.[0-9]{2})[0-9]*,/\1,/g'
неуниверсально, но если формат именно такой, должно работать. Если нет -- man sed

унылый тролль
#2 - 18.10.2009 - 11:38

sed: -e expression #1, char 27: invalid reference \1 on `s' command's RHS. :3

Xenius
#3 - 18.10.2009 - 12:12

Ну man sed тогда. А хотя, нужно перед круглыми скобками добавить по обратному слешу \

унылый тролль
#4 - 18.10.2009 - 12:19

сейчас оно работает (не выдаёт ошибки) но все флоаты остались неукороченными. :s

naryl
#5 - 18.10.2009 - 13:18

тролль, если все функции принимают одинаковое количество аргументов и float всегда на одном месте, то попробуй этот микроскоп:
cat test | awk -F , 'BEGIN {CONVFMT="%2.2f"} ──(Sun,Oct18)─┘
{ print $1 ", " $2 + 0 ", " $3 + 0 ", " $4 + 0 ", " $5 + 0 ", " $6 ", " $7 ", " $8 }'

naryl
#6 - 18.10.2009 - 13:22

cat test | awk -F , 'BEGIN {CONVFMT="%2.2f"}
{ print $1 ", " $2 + 0 ", " $3 + 0 ", " $4 + 0 ", " $5 + 0 ", " $6 ", " $7 ", " $8 }'

Xenius
#7 - 18.10.2009 - 14:40

Возможно у тебя не совсем такой формат, как ты описал, например есть пробелы. Дай что ли кусок списка

унылый тролль
#8 - 18.10.2009 - 15:11

Xenius, оригинал не сохранил т.к. вариант нэрила сработал. Сорри.
Но все строки выглядели именно так:
Function(1,1.111111,1.111111,1.111111,1.111111,0,0,900);

naryl
#9 - 18.10.2009 - 18:58

/me is satisfied =)

унылый тролль
#10 - 18.10.2009 - 22:06

/me hugs naryl

Temcha
#11 - 20.10.2009 - 18:13

ЫЫ... Нарыл таки вариант?
К списку вопросов

Быстрый ответ
Имя:      Пароль:    
Текст сообщения:

«ibash.org.ru — Новый цитатник Рунета» Почта вебмастера: imail@ibash.org.ru