Я пытаюсь написать сценарий Bash, который читает файлы с несколькими столбцами данных и умножает каждое значение во втором столбце на каждое значение в третьем столбце, добавляя вместе результаты всех этих умножений ,Использование awk с операциями над переменными
Например, если файл выглядит следующим образом:
Column 1 Column 2 Column 3 Column 4
genome 1 30 500
genome 2 27 500
genome 3 83 500
...
Скрипт должен умножить 1 * 30, чтобы дать 30, то 2 * 27, чтобы дать 54 (и добавить, что до 30), то 3 * 83 чтобы дать 249 (и добавить, что до 84) и т. д.
Я пытался использовать awk для анализа входного файла, но я не уверен, как заставить операцию двигаться последовательно. Прямо сейчас он останавливается после считывания первой строки и выполнения операций с переменными.
Вот что я написал до сих пор:
for file in fileone filetwo
do
set -- $(awk '/genome/ {print $2,$3}' $file.hist)
var1=$1
var2=$2
var3=$((var1*var2))
total=$((total+var3))
echo var1 \= $var1
echo var2 \= $var2
echo var3 \= $var3
echo total \= $total
done
Я попытался помещая «во время чтения» петли вокруг все, но не может получить переменные для обновления каждой строки. Я думаю, что я ошибаюсь!
Я очень новичок в написании сценариев Linux и Bash, поэтому любая помощь будет принята с благодарностью!
Спасибо за объяснение! На самом деле это небольшая часть более крупного скрипта bash, поэтому я старался сохранить все вместе просто для простоты. – Joltex