The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
работа с подстрокой внутри awk, !*! meHome, 04-Дек-12, 16:30  [смотреть все]
Добрый день.
По конвееру (cat file | sed -e ... -e ..... -e.... | ) переделывается файл и в итоге получаются на выходе строки такого вида:
Лена;123.3245
Маша;146.2234666
Петя;23131
Поросёнок Пётр;13213.
Как сделать так, чтобы второе поле привести к виду "максимум два знака после точки" (если после точки ничего нет - убираем её) , т.е. чтобы в итоге получилось
Лена;123.32
Маша;146.22
Петя;23131
Поросёнок Пётр;13213
Застрял на подобном:
cat file | sed -e ... -e ..... -e.... | awk -F ";"как-то_обработать_$2 '{print $1";"обработанный_$2}'
Пожалуйста, помогите понять как тут можно извернуться.
  • работа с подстрокой внутри awk, !*! meHome, 17:01 , 04-Дек-12 (1)
    >[оверквотинг удален]
    > после точки" (если после точки ничего нет - убираем её) ,
    > т.е. чтобы в итоге получилось
    > Лена;123.32
    > Маша;146.22
    > Петя;23131
    > Поросёнок Пётр;13213
    > Застрял на подобном:
    > cat file | sed -e ... -e ..... -e.... | awk -F
    > ";"как-то_обработать_$2 '{print $1";"обработанный_$2}'
    > Пожалуйста, помогите понять как тут можно извернуться.

    awk -F";" 'x=index($2,"."), y=x-1, z=x+1, $3=substr($2,0,y), $4=substr($2,z,2) {print $1";"$3"."$4}'
    ?
    но что-то  с синтаксисом

  • работа с подстрокой внутри awk, !*! Andrey Mitrofanov, 17:13 , 04-Дек-12 (2)
    > Пожалуйста, помогите понять как тут можно извернуться.

    Улицы ждут подметальщиков.

    | sed -e ... -e ..... -e.... -e 's/\(\.[0-9][0-9]\)[0-9]\+$/\1/'

    $ { echo 'Маша;146.2234666';echo 'Петя;23131'; } | sed -e 's/\(\.[0-9][0-9]\)[0-9]\+$/\1/'
    Маша;146.22
    Петя;23131




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру