这是我到目前为止得到的:
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
.在代码中,我使用两个 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 }'
这使用逗号作为输入和输出分隔符,然后拆分 上的第二个字段,将其设置为传递到程序的变量值乘以%
前面的数字,并打印修改后的记录。%