gpt4 book ai didi

regex - 用尾随 9 舍入数值

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:54 24 4
gpt4 key购买 nike

我正在尝试查找数字字符串中的最大值,并且某些数据包含尾随 9。

999999999999 63 66 69 71 73 75 76 78 80 81 81 80 79 74 67 63999999999999999

我一直在使用以下命令来查找数字的最大值,但显然该命令将尾随 9 的数据视为“最大值”(例如,6399999 ....)并忽略了实际的最大值值。一些数据还包含只是一堆 9 的错误数据。

grep -Eo '[0-9]+' file_temp | sort -rn | head -n 1 > file_temp_max

如何去除错误数据(例如 999999)以及如何更正尾随 9 的值(6399999... > 64)以便将它们四舍五入(并包含在数据集中) ?

最佳答案

这与 Adams 的回答略有不同,在循环中使用 sed。

首先,我假设您不知道将包含多少个 9。其次,我正在使用中间转换来 float 。

for line in $(cat file_temp); do 
i=$(echo $line | sed 's/../.&/;t;s/^.$/.0&/');
printf "%.02f\n" $i;
done | sed 's/\.//;s/^0//' | sort -nr

分割:

sed 's/../.&/;t;s/^.$/.0&/'在第二个字符后加一个小数点

printf "%.02f\n"$i; 将值打印为 float - 自动为您四舍五入。

sed 's/\.//;s/^0//' 去除前导 0 和 .只留下剩余的整数

关于regex - 用尾随 9 舍入数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458424/

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