我需要做一个非常独特的功能。我必须运行' netstat -m'将返回值的命令。第一行将包含以下内容:
95777/3083/598860 mbufs in use (current/cache/total)
所以我可以这样做:netstat -m | grep "mbufs in use"
对我来说,困难的部分是我需要提取第三个数字(在这种情况下,598860)。如果此数字超过800000,那么我需要发出reboot命令。我不能很好地理解正则表达式,以便从第二个' /'中提取。进入空间'获得该数字,然后将其与800000进行比较,看它是否更大。
感谢您的协助!
答案 0 :(得分:1)
作为评论中给出答案的替代方案,我建议使用cut命令,如下所示;
netstat -m | grep "mbufs in use"|cut -f1 -d' '|cut -f3 -d'/'
这将从OP提到的结果的第一个字段中提取第三个值。
输出
$ netstat -m | grep "mbufs in use"|cut -f1 -d' '|cut -f3 -d'/'
598860
答案 1 :(得分:0)
awk方法
Servidor: Localhost via UNIX socket
Tipo de servidor: MariaDB
Versión del servidor: 10.0.17-MariaDB - Source distribution
Versión del protocolo: 10
Usuario: root@localhost
Conjunto de caracteres del servidor: UTF-8 Unicode (utf8)