как выполнять арифметические операции в linux с помощью awk или sed и передавать результат в файл


С этой проблемой я бьюсь головой о стены, пожалуйста, помогите.

У меня есть два файла Sheetthickness.k, который содержит единственное значение начальной толщины и minThick.k, которая содержит конечную толщину только одного числа. Я хочу рассчитать процент уменьшения толщины, который я использовал.

fina="$(cat minThick.k)";
echo $fina
init="$(cat Sheetthickness.k)";
echo $init 

echo |awk "{ print ($init-$fina)/($init) }" > LSDynaResponse.txt

В оболочке, где нет другой команды и файлы уже есть, то он работает отлично , но когда файлы создаются программным обеспечением, а затем эти команды используются, это дает ошибку.

awk: { print (-)/() }  
awk:           ^ syntax error
awk: { print (-)/() }
awk:            ^ syntax error
awk: { print (-)/() }
awk:             ^ unterminated regexp

Есть ли другой элегантный способ выполнить эту задачу?

1 2

1 ответ:

Похоже, что у вас есть пустые файлы или вообще нет файлов, попробуйте так:

fina="$(cat minThick.k)"       || echo "No min file!!"
[[ -z $fina ]]                 && echo "Null min value!!"
echo $fina
init="$(cat Sheetthickness.k)" || echo "No init file!!"
[[ -z $init ]]                 && echo "Null init value!!"
echo $init
echo "($init-$fina)/($init)"   | bc -l > LSDynaResponse.txt