как вставить переменную из 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 то все работает.
>как вставить переменную из 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-программы'
>>как вставить переменную из 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-программы'
не работает, выдает пустую строку и не жалуется на ошибку
>>>как вставить переменную из 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
>>>>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^/
>>>>>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