如何在终端输出中的最后三位数之前放置一个点

时间:2017-03-30 18:01:45

标签: regex linux sed terminal

在终端输出中的最后三个点之后放置点的最佳方法是什么?

我想从中得到:10902MB/88%

10.902MB/88%

目前我有这个命令:

df -m /dev/sda8 | grep -Eo '[0-9]*  [0-9]*%'| sed 's/  */MB\//g'

修改

`df -m / dev / sda8的输出是

Filesystem     1M-blocks  Used Available Use% Mounted on
/dev/sda8          90349 74910     10828  88% /

我只需要AvailableUse%值。

2 个答案:

答案 0 :(得分:2)

echo 10902MB/88% | awk '{gsub(/[0-9][0-9][0-9]MB\//, ".&")} 1'

df -m /dev/sda8 | awk '{gsub(/[0-9][0-9][0-9]MB\//, ".&")} 1'

答案 1 :(得分:1)

您正尝试从df命令输出中获取某个已安装文件系统的“可用”和“使用%”部分的值。 /> 使用以下sed方法:

df -m /dev/sda8 | sed -En 's~.* ([0-9]+)([0-9]{3}) +([0-9]+%).*~\1.\2MB/\3~gp'