Как поместить строку из файла в таблицу (переменную) - PullRequest
0 голосов
/ 03 июня 2019

У меня есть следующий файл

Durand 12 9 14
Lucas 8 11 4
Martin 9 12 1

Мне нужно отобразить имя и среднее значение трех других с помощью функции.Функциональная часть проста.

Я подумал, что могу построчно получить строку:

head -i notes | tail -1

и затем поместить результат команды в таблицу, чтобы получить к ней доступ

table=(head -i notes | tail -1)
echo "${table[0]} averge : moy ${table[1]} ${table[2]} ${table[3]}"

1 Ответ

0 голосов
/ 03 июня 2019

Вы можете использовать три важных понятия для решения такой проблемы:

  1. Перебирать файл
  2. Сохранять значения как переменные
  3. Делать математические переменные

Хороший способ читать файл построчно с помощью цикла while:

while read line; do echo $line; done < notes

Обратите внимание, как мы используем перенаправление файлов < для обработки файла какстандартный ввод.read потребляет одну полную строку за раз.Давайте расширим это, чтобы хранить отдельные переменные.

while read name a b c; do echo $name $a $b $c; done < notes

Теперь давайте включим математику.Вы можете использовать внешнюю программу, такую ​​как bc, но это неэффективно, если нам не нужна математика с плавающей запятой (десятичные дроби).В Bash встроена математика!

while read name a b c; do echo $name $(( (a + b + c) / 3 )); done < notes

Как вы сказали, функциональная часть проста:)


awk один вкладыш:

awk '{print $1, ($2+$3+$4)/3}' notes
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...