我正在尝试对 awk 输出过程进行一些算术运算。 我的示例文件包含字符串并且它是计数的。现在我试图使计数值的格式为 MB(默认计数将以字节为单位。)
例子: 我的文件.txt
a 123455
b 34455566
c 10394934839
d 102445555
我的脚本:
cat myfile.txt | while read line; do name=$line ; name=`echo $fname|awk '{print $1}'` ; cnt=`echo $fname|awk '{print $1}'`; if [$cnt -gt 1024] ; then echo "$name value in critical $cnt";fi done
问题:我希望将 cnt 值转换为 MB ( cnt/1024/1024) 。
不知道如何实现这一点。
最佳答案
您可以直接在 awk
中完成,而无需在 BASH
中循环:
awk '{print $1, $2/(1024*1024)}' file
a 0.117736
b 32.8594
c 9913.38
d 97.6997
或 2 个小数点输出:
awk '{printf "%s %.2f\n", $1, $2/(1024*1024)}' file
a 0.12
b 32.86
c 9913.38
d 97.70
关于bash - 用于 awk 打印除以 1024 的值的 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25077709/