2012-07-16 44 views
2

帶有此問題我正在用牆打我的頭,請大家幫忙。如何在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 

在殼裏沒有其他命令和文件已經有那麼完美的作品,但是當文件被軟件創建,然後使用這些命令,提示錯誤。

​​

任何其他優雅的方式來完成這項任務?

+1

@perreal:這是不正確。你需要使用'echo'來通過'stdin'給AWK一些東西來消費或者在'BEGIN'塊中進行計算。否則它會掛起等待輸入。 – 2012-07-16 10:52:16

回答

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 
+1

你是對的,我編輯了錯誤的代碼循環.. – 2012-07-16 08:31:20

相關問題