【备注:这里记录下常用的正则表达式匹配规则】
1. 匹配一行内容并取出其中的值 <--> /^(\S+)\s+(\S+)\s+(\d*)\S?\s+(\d*)\S?\s+(\d*)\S?\s+(\d*)\S?\s+(\S*)/
这里输入命令df -PTBK可看到磁盘信息如下:
这时如果需要获取具体的数值,可以按如下处理(nodejs实现):
‘use strict‘; var execFile = require(‘child_process‘).execFile; var Log = require(‘../lib/log‘).GetLogger(); var BINPATH = ‘/bin/df‘; var PARAMS = [‘-PTBK‘]; var VolumeREGEXP = /^(\S+)\s+(\S+)\s+(\d*)\S?\s+(\d*)\S?\s+(\d*)\S?\s+(\d*)\S?\s+(\S*)/; var UNITS = 1024; function DiskVolumeProbe(cb) { Log.info(‘Call Func DiskVolumeProbe‘); execFile(BINPATH, PARAMS, function (error, stdout, stderr) { if (error) { return cb(error); } else { if (stderr) { Log.error(stderr); } var result = ParseVolumesData(stdout); return cb(error, result); } }); } exports.DiskVolumeProbe = DiskVolumeProbe; function ParseVolumesData(data) { Log.info(‘Call Func ParseVolumesData‘); var parseResult = []; var datas = data.split(‘\n‘); for (var i = 1; i < datas.length; i++) { var curLine = datas[i]; // 空行不处理 if (curLine.length === 0) { continue; } var result = curLine.match(VolumeREGEXP); if (result) { var fileSystemType = result[2]; //do something } else { var MatchErr = new Error(‘[ ‘ + curLine + ‘ ] Not match to VolumeREGEXP‘); MatchErr.name = ‘MatchErr‘; Log.error(MatchErr); } } return parseResult; }
原文:https://www.cnblogs.com/LuckyOven/p/13565883.html