Подведите итог выбранных полей

decimal_places=2
dc  <<< "${decimal_places}k $(uptime | awk '{print $11}'|  cut -d"," -f1) $(grep -c processor /proc/cpuinfo) /p"

Этот ответ использует $() в bash, поэтому временные переменные не нужны. В нем также используется dc, калькулятор. Мы говорим dc о точности, используя k, затем даем ему 2 числа, затем просим его разделить их и вывести ответ.

.
1
06.09.2014, 14:43
2 ответа
amt=$(
    grep -E '^.{123}RS' custbills.cmp |
    cut -c86-99 | 
    tr '\n' '+' | 
    bc
)

или

amt=$(
    awk '
        substr($0,124,2) == "RS" {amt+=substr($0,86,14)} 
        END {print amt}
    ' custbills.cmp
)
2
27.01.2020, 23:38

вы отправляете в bc что-то вроде

12 34 56 22 56 98

без строки операции.

редактировать попробовать

amt=$(cat custbills.cmp| cut -c86-99 |awk '{s+=$1 } END {print s }')
0
27.01.2020, 23:38

Теги

Похожие вопросы