awkを使用して列内で計算

awkを使用して列内で計算

これが私が今まで得たものです:

var="1.5"

echo "date,1%sa,comment" |
 awk -F ',' '{print $2}' |
 awk -v i="$var" -F '%' '{$1*=i; print $1}'

# prints: 1.5

外部変数から計算する値を取得する必要があるため、awkコード-v内の2つのawkコマンドを使用して数値を%sa

date,1.5,comment

答え1

var="1.5"

echo "date,1%sa,comment" |
awk -F ',' -v OFS=',' -v i="$var" '{ split($2, a, "%"); $2 = a[1]*i; print }'

これはコンマを入力と出力の区切り文字として使用し、2番目のフィールドで分割し、プログラムに渡された変数の値に前の数字を掛けた%値に設定し、変更されたレコードを印刷します。%

関連情報