(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=