【发布时间】:2021-03-18 09:43:14
【问题描述】:
我有一个以 MB 为单位的数字文件,我想以 GB 为单位制作它们,然后我发现了一个非常有趣的 perl 来执行此操作
perl -pe 's{(?<!\d)(\d+(?:\.\d+)?)(?!\d)}{$1/1024}ge'
但我仍然需要在点后将结果四舍五入
目前,类似260.676914215088的结果
我尝试了一些其他 Unix 工具,例如 cut 和 bc,但如果在 Perl 中完成会更好。
顺便说一句,该文件包含数字和字符串,上面的 Perl 正在按预期工作,但我仍然需要对结果进行四舍五入。
如果有人对上述 perl 语句提供帮助,我将不胜感激,因为我已经在使用它在不同单位之间进行更改
【问题讨论】:
-
这能回答你的问题吗? stackoverflow.com/questions/35043874/…
-
这没有回答我的问题,如果有人对上述 perl 语句提供帮助,我将不胜感激,因为我已经在使用它在不同单位之间进行更改
-
sprintf 在我的操作系统上不是一个选项
-
那是什么操作系统?请向我们提供所有信息,否则我们无能为力。
sprintf是内置的核心 Perl,它与系统无关。我现在已经撤消了重复关闭。 -
@simbabque 我相信他的问题不是 perl,而是将 printf 集成到他的 oneliner 中