我有一个如下用户列表,我想将单位转换为千兆字节
user1@example.com Mbox size: 7445440 Kb
user2@example.com Mbox size: 6622275 Kb
user3@example.com Mbox size: 4657973 Kb
user"n"@example.com Mbox size: 3657673 Kb
任何帮助,将不胜感激。
我有一个如下用户列表,我想将单位转换为千兆字节
user1@example.com Mbox size: 7445440 Kb
user2@example.com Mbox size: 6622275 Kb
user3@example.com Mbox size: 4657973 Kb
user"n"@example.com Mbox size: 3657673 Kb
任何帮助,将不胜感激。
对于计算,我喜欢使用 bash 脚本中嵌入的 awk。
将下面的脚本保存到一个文件中,例如 togb.sh 并使其可执行。如果您需要小数,只需调整 printf 格式。
#!/bin/bash -
awk '{ printf("%5.3f\n", $4 / (1024*1024)); }' $1
将数据存储在文件 data.txt 中并使用命令行调用脚本:
./togb.sh data.txt
7
6
4
4
要以相同的格式显示列表但单位有所更改,您可以使用这个稍作改动的脚本:
#!/bin/bash -
awk '{ printf("%s %s %s %5.3f GB\n", $1, $2, $3, $4 / (1024*1024)); }' $1
该脚本的输出将是:
user1@example.com Mbox size: 7.270 GB
user2@example.com Mbox size: 6.467 GB
user3@example.com Mbox size: 4.548 GB
user"n"@example.com Mbox size: 3.571 GB
顺便说一句,awk 可以做的远不止这些,它实际上是处理存储在文本文件中的数据的理想选择。