编写脚本来检索号码

编写脚本来检索号码

我想剪切数字和单位以仅将其保存为文件中的数字。

输入是:

Data byte rate:      24 bytes/s
Average packet size: 118.59 bytes
Data byte rate:      2 Kbytes/s
Average packet size: 10 Kbytes

预期输出是:

24
118.59
2000
10000

这就是我到目前为止所做的仅检索号码。

sed -r 's/.* ([0-9]+\.*[0-9]*).*?/\1/'

答案1

为了进行格式转换,您可以捕获并保留可选的乘数,然后将结果通过管道传输到numfmt

所以

$ sed -r 's/.* ([0-9]+\.?[0-9]*)[ \t]*([kKMGTP])?.*/\1\U\2/' input
24
118.59
2K
10K

这变成

$ sed -r 's/.* ([0-9]+\.?[0-9]*)[ \t]*([kKMGTP])?.*/\1\U\2/' input | numfmt --from si
24
118.59
2000
10000

相关内容