我有一个 netflow 输出,其中某些行在字节后显示“M”:
2014-05-10 14:26:49.231 10.335 UDP 114.31.254.227:24874 -> 56.213.85.253:13617 9 1139 1
2014-05-10 14:26:59.494 0.222 UDP 114.31.254.193:17769 -> 165.199.57.179:40012 3 172 1
2014-05-10 14:26:56.015 3.348 TCP 96.196.161.39:80 -> 114.31.255.131:61066 5428 7.8 M 1
2014-05-10 14:26:59.705 0.246 UDP 165.199.57.144:40007 -> 114.31.254.193:17769 3 140 1
可以看出,有一个“7.8 M”的实例,我想将其显示为它的真实字节值,而不是兆字节。
我想用它们的字节值替换所有兆字节值(乘以 1,048,576)。
代码如下: match '[number string] M' 将 number 乘以 1048576 并替换
列是 9-10 在带有 M 的行上
也许使用 awk?:
cat whitespacetrim.out | grep ' M ' | cut -f 9,10 -d ' '| cut -f 1 -d ' ' | awk '{val=$1*1024*1024} END {print val}'|