gpt4 book ai didi

linux - 在 Bash 中将文件中的所有数字四舍五入为相等长度?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:47 26 4
gpt4 key购买 nike

有没有简单的方法可以将文件中的 float 四舍五入为等长?该文件包含其他文本,而不仅仅是数字。

before: bla bla bla 3.4689 bla bla bla 4.39223 bla.
after: bla bla bla 3.47 bla bla bla 4.39 bla.

谢谢

最佳答案

bash

#!/bin/bash
shopt -s extglob
while read -r line
do
set -- $line
for((i=1;i<=${#};i++))
do
s=$(eval echo \${${i}})
case "$s" in
+([0-9]).+([0-9]) ) s=$(printf "%.2f " $s);;
esac
printf "%s " $s
done
echo
done <"file"

输出

$ cat file
bla1 bla 2 bla 3.4689 bla bla bla 4.39223 bla.
words ..... 2.14 blah blah 4.5667 blah

$ ./shell.sh
bla1 bla 2 bla 3.47 bla bla bla 4.39 bla.
words ..... 2.14 blah blah 4.57 blah

关于linux - 在 Bash 中将文件中的所有数字四舍五入为相等长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2703993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com