sed s

export m1=`free|cut -d ":" -f2|sed -e "s/^ss*//g"|head -2|tail -1|cut -d ' ' -f1`
 
#free
total used free shared buff/cache available
Mem: 1002664 27516 803344 248 171804 961688
Swap: 0 0 0
 
cut -d ":" -f2
以:为分隔符,打印出第二部分
     total used free shared buff/cache available
     1002664 27516 803344 248 171804 961688
     0 0 0
sed -e "s/^ss*//g" 表示将行头空白字符去除掉
s 匹配任何空白字符,包括空格、制表符、换页符等等。
 
非打印字符
非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列:
字符     描述
cx     匹配由x指明的控制字符。例如, cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
f     匹配一个换页符。等价于 x0c 和 cL。
    匹配一个换行符。等价于 x0a 和 cJ。
    匹配一个回车符。等价于 x0d 和 cM。
s     匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ f v]。注意 Unicode 正则表达式会匹配全角空格符。
S     匹配任何非空白字符。等价于 [^ f v]。
    匹配一个制表符。等价于 x09 和 cI。
v     匹配一个垂直制表符。等价于 x0b 和 cK。
 
|head -2|tail -1| 取出前两行后一行
1002664 27516 803344 248 171804 961688
 
cut -d ' ' -f1
以空给为分隔符,打印出第一部分
 
export m=`expr $m1 * $1 / 100 / 1024`
乘法操作应采用 * 转义,避免被作为Shell通配符
原文地址:https://www.cnblogs.com/idyllcheung/p/10826266.html