The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"работа с подстрокой внутри awk"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"работа с подстрокой внутри awk"  +/
Сообщение от meHome (ok) on 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}'
Пожалуйста, помогите понять как тут можно извернуться.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "работа с подстрокой внутри awk"  +/
Сообщение от meHome (ok) on 04-Дек-12, 17:01 
>[оверквотинг удален]
> после точки" (если после точки ничего нет - убираем её) ,
> т.е. чтобы в итоге получилось
> Лена;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}'
?
но что-то  с синтаксисом

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "работа с подстрокой внутри awk"  +/
Сообщение от Andrey Mitrofanov on 04-Дек-12, 17:13 
> Пожалуйста, помогите понять как тут можно извернуться.

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

| 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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "работа с подстрокой внутри awk"  +/
Сообщение от meHome (ok) on 04-Дек-12, 17:29 
>> Пожалуйста, помогите понять как тут можно извернуться.
> Улицы ждут подметальщиков.
> | 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

да кто же мне лопату доверит :(
спасибо!

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "работа с подстрокой внутри awk"  +/
Сообщение от Andrey Mitrofanov on 04-Дек-12, 17:45 
> да кто же мне лопату доверит :(
> спасибо!

Ну, случай им.Поросёнка Петра -- сам.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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