linux - 减少文本文件第四列中的小数

标签 linux bash unix sed

我有一个文本文件,其中第四列包含有很多小数位的数字。我需要将位数减少到小数点后 0.1 位。

数据:

2015041416 KBOS TMP2M 62.034
2015041417 KBOS TMP2M 65.0826
2015041418 KBOS TMP2M 66.7278
2015041419 KBOS TMP2M 67.5033
2015041420 KBOS TMP2M 67.1731
2015041421 KBOS TMP2M 65.9252
2015041422 KBOS TMP2M 62.7644
2015041423 KBOS TMP2M 60.8136
2015041500 KBOS TMP2M 56.167
2015041501 KBOS TMP2M 55.7116
2015041502 KBOS TMP2M 51.8512
2015041503 KBOS TMP2M 51.6005
2015041504 KBOS TMP2M 50.1643
2015041505 KBOS TMP2M 49.2167
2015041506 KBOS TMP2M 48.273
2015041507 KBOS TMP2M 46.6407

最佳答案

awk '{printf "%s %s %s %.1f\n",$1, $2, $3, $4}' file > file2

输出到文件2:

2015041416 KBOS TMP2M 62.0
2015041417 KBOS TMP2M 65.1
2015041418 KBOS TMP2M 66.7
2015041419 KBOS TMP2M 67.5
2015041420 KBOS TMP2M 67.2
2015041421 KBOS TMP2M 65.9
2015041422 KBOS TMP2M 62.8
2015041423 KBOS TMP2M 60.8
2015041500 KBOS TMP2M 56.2
2015041501 KBOS TMP2M 55.7
2015041502 KBOS TMP2M 51.9
2015041503 KBOS TMP2M 51.6
2015041504 KBOS TMP2M 50.2
2015041505 KBOS TMP2M 49.2
2015041506 KBOS TMP2M 48.3
2015041507 KBOS TMP2M 46.6

Same output with bash and without awk:

printf "%s %s %s %.1f\n" $(< file) > file2

关于linux - 减少文本文件第四列中的小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29634017/

相关文章:

linux - 编写 Linux 终端模拟器

linux - 如何在将标准输出重定向到 Bash 文件时添加时间戳?

python - 使用 pxssh 进行 SSH 时 python 代码出错

Apache - 我如何将单个和/或所有模块构建为共享模块

c - 编译 GCC-7.2 时出错

bash - 在终端命令行上移动光标的最快方法?

bash - 使用变量将带引号的参数传递给命令

git - 鼠标选项在 Git-Bash Windows 上的 Vim 中不起作用

linux - Unix - 递归计算文件类型的数量

c - 读取密码文件时,程序从未遇到 EOF