The OpenNET Project / Index page

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

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

"переменная из bash в awk"  
Сообщение от teset on 28-Ноя-06, 16:10 
как вставить переменную из bash скрипта в awk?
вот кусок из скрипта:

IP=1.1.1.1
OUT=`cat /tpm/file | awk '$1=="$IP" {print} ' | awk '{s+=$4} END {print(s)}'`
echo $OUT

так не работает, а если вместо $IP вставляю 1.1.1.1 то все работает.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

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


1. "переменная из bash в awk"  
Сообщение от plsn email(??) on 28-Ноя-06, 16:46 
>как вставить переменную из bash скрипта в awk?
>вот кусок из скрипта:
>
>IP=1.1.1.1
>OUT=`cat /tpm/file | awk '$1=="$IP" {print} ' | awk '{s+=$4} END {print(s)}'`
>
>echo $OUT
>
>так не работает, а если вместо $IP вставляю 1.1.1.1 то все работает.
>


awk -v IP=$IP 'код awk-программы'

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "переменная из bash в awk"  
Сообщение от teset on 28-Ноя-06, 21:16 
>>как вставить переменную из bash скрипта в awk?
>>вот кусок из скрипта:
>>
>>IP=1.1.1.1
>>OUT=`cat /tpm/file | awk '$1=="$IP" {print} ' | awk '{s+=$4} END {print(s)}'`
>>
>>echo $OUT
>>
>>так не работает, а если вместо $IP вставляю 1.1.1.1 то все работает.
>>
>
>
>awk -v IP=$IP 'код awk-программы'
не работает, выдает пустую строку и не жалуется на ошибку

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "переменная из bash в awk"  
Сообщение от madskull (ok) on 29-Ноя-06, 02:10 
>>>как вставить переменную из bash скрипта в awk?
>>>вот кусок из скрипта:
>>>
>>>IP=1.1.1.1
>>>OUT=`cat /tpm/file | awk '$1=="$IP" {print} ' | awk '{s+=$4} END {print(s)}'`
>>>
>>>echo $OUT
>>>
>>>так не работает, а если вместо $IP вставляю 1.1.1.1 то все работает.
>>>
>>
>>
>>awk -v IP=$IP 'код awk-программы'
> не работает, выдает пустую строку и не жалуется на ошибку

да потому что надо почитать что-нибудь по теме и подумать.
если использовать awk -v IP=$IP 'код awk-программы', то внутри awk программы переменная используется без $.
или же делать awk "программа", тогда использовать $IP

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "переменная из bash в awk"  
Сообщение от perece on 30-Ноя-06, 15:46 
>>>>OUT=`cat /tpm/file | awk '$1=="$IP" {print} ' | awk '{s+=$4} END {print(s)}'`
можно еще вот так:
OUT=`cat /tpm/file | awk '$1=="'$IP'" {print} ' | awk '{s+=$4} END {print(s)}'`

т.е. awk 'началопрограммы'$var'оставшаясячасть'

\^P^/

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "переменная из bash в awk"  
Сообщение от Pikador (??) on 01-Дек-06, 14:13 
>>>>>OUT=`cat /tpm/file | awk '$1=="$IP" {print} ' | awk '{s+=$4} END {print(s)}'`
>можно еще вот так:
>OUT=`cat /tpm/file | awk '$1=="'$IP'" {print} ' | awk '{s+=$4} END {print(s)}'`
>
>
>т.е. awk 'началопрограммы'$var'оставшаясячасть'
>
>\^P^/

Работающий пример
awk '{if ($1 ~ IP && $3 <= IP2 && $4 >= IP2) print $5}' IP=$IP IP2=$IP2  /root/nets.txt

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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