У меня есть скрипт bash, который выводит некоторую статистику на экран для каждого номера образца (пример показан ниже), когда я запускаю код test.sh.
Я пытаюсь сохранить вывод в переменной и извлечь среднее значение для testNum -> 11 и 52
A=`./test.sh` # I have all the output in a variable A
Теперь мне нужно извлечьсреднее значение 11, которое составляет -128 и -96 для 52 Я пытаюсь и думаю, как я могу это сделать
Может кто-нибудь помочь мне в этом, пожалуйста?
Это пример тестового кода: test.sh
#!/bin/sh
echo Valid Numbers per States:3G phones
echo testNum N_States Mean Value
echo 1 10 -128
echo 2 10 -95
echo 3 10 -94
echo 4 10 -94
echo 5 10 -94
echo 6 10 -128
echo 7 10 -91
echo 8 10 -94
echo 9 10 -94
echo 10 10 -94
echo 11 10 -128
echo --------------------------------------------
echo Valid Numbers per States :4G phones
echo testNum N_States Mean Value
echo 36 10 -95
echo 40 10 -95
echo 44 10 -95
echo 48 10 -95
echo 52 10 -96
echo 56 10 -95
echo 60 10 -96
echo 64 10 -96
echo 100 10 -99
echo 104 10 -97
echo 108 10 -98
echo 112 9 -98
echo 116 9 -98
echo 120 9 -99
echo 124 9 -98
echo 128 9 -98
echo 132 9 -98
echo 136 9 -99
echo 140 9 -99
echo 144 9 -99
echo 149 9 -98
echo 153 9 -99
echo 157 9 -99
echo 161 9 -99
echo 165 9 -98
echo --------------------------------------------
Я использовал команды echo "$x" | grep -w '^52' | cut -d' ' -f3
Но Linux на моем проприетарном оборудовании не позволяет ^ (не уверен, его версия или что-то в этом роде) .. Яможет запустить это на любой оболочке bash .. работает нормально, но если я запускаю ту же команду, она ничего не выводит.
Итак, я начал делать несколько awk для этого. Здесь temp 128 NF_Est - это вывод скрипта echo "$NF_Est" | grep -w 128 | awk '{if ($1==128)print $0}' | tr -s " " | cut -d" " -f3
Но это не работает, если я являюсь "временными" значениями в нескольких столбцах
Любые предложения, где я облажался (или), это может быть сделано намного более простым способом?