awk 浮点数
Awk floating point numbers
我有一个 awk 脚本,它检查文件中的所有负值并用 abs 值更改它们。
awk 'BEGIN {OFS=FS="\t"} function abs(x) {return ((x < 0.0) ? -x : x)} {
for (column = 1; column <= NF; ++column) {
if ($column ~ /[0-9]/ && $column < 0.0) {
sub($column, abs($column))
}
}
print
}'
在文件中,所有值都表示为浮点数,例如 -1000.0,但在我执行 awk 命令后,我得到的是 1000 而不是 1000.0。
在 sub:
上使用 mask
sub(sprintf("%d",$column), abs($column))
我有一个 awk 脚本,它检查文件中的所有负值并用 abs 值更改它们。
awk 'BEGIN {OFS=FS="\t"} function abs(x) {return ((x < 0.0) ? -x : x)} {
for (column = 1; column <= NF; ++column) {
if ($column ~ /[0-9]/ && $column < 0.0) {
sub($column, abs($column))
}
}
print
}'
在文件中,所有值都表示为浮点数,例如 -1000.0,但在我执行 awk 命令后,我得到的是 1000 而不是 1000.0。
在 sub:
上使用mask
sub(sprintf("%d",$column), abs($column))