как выполнять арифметические операции в 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 ответ:
Похоже, что у вас есть пустые файлы или вообще нет файлов, попробуйте так:
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