AWKを使用してファイルの列に浮動小数点数を掛ける

AWKを使用してファイルの列に浮動小数点数を掛ける

(1.0 + 0.25)など、ファイルの列に浮動小数点数を掛ける必要があります。

file1.txtファイルからawkコマンドを使用して抽出された列3(数値を含む)があります。

awk '{ print $3 }' file1.txt > coloumn1

1.0  
1.2  
1.3  

次の値を達成するには、すべての列値に(1.0 + 0.25)を掛けたいと思います。要件は、他のp1値を1.1として使用することです。

( 1.0*(p1+0.25))  
( 1.2*(p1+0.25))  
( 1.3*(p1+0.25))  

1.250  
1.500  
1.625  

私のスクリプトは

#bin/bash
p1=1.0
val=`echo $p1 + 0.25 | bc`
awk -F, '{$1*=$val}1' OFS=, coloumn1 > coloumn_mod

ただし、上記のawkコマンドは予想される結果を返しません。

上記のコマンドを修正するのに役立ちますか?

ベストアンサー1

awk -v p1='1.0' '{ printf("%.3f\n", $0*(p1+0.25) ) }' infile

入力ファイルに1つ以上の列があり、コンマ文字で区切られていて、3番目の列これを実行したい場合は、次のものを使用できます。

awk -F, -v p1='1.0' '{ printf("%.3f\n", $3*(p1+0.25) ) }' infile

は、レコード全体/行、最初のフィールド/列、2番目のフィールド/列、3番目のフィールドなどを表します。awkここで、フィールドはデフォルトの空白文字(タブ/スペース)に分割するか、コードブロックまたはコードブロック内でオーバーライドできます。また。$0$1$2$3-F-v FS=

おすすめ記事