在文件ps_result中存放着进程用户名,进程Id,进程命令这三列信息,这些信息有执行ps -ef后处理得到,文件中格式如下:
root 1 /usr/lib/systemd/systemd --system --deserialize 25
root 624 /usr/sbin/lvmetad -f
root 720 /sbin/auditd -n
root 733 /sbin/audispd
root 736 /usr/sbin/sedispatch
想从文件中获取每一个进行的相关信息,用正则表达式如下:
for line in open('ps_result').readlines():
r = re.search(r'^(?P<puser>.*?) (?P<pid>\d+?) {1,}(?P<pcmd>.*$)',line)
print "puser:%s ; pid:%s ; pcmd:%s" % (r.group('puser'),r.group('pid'),r.group('pcmd'))
例子中,利用正则表达式的?P用法,将匹配后的信息存放到变量中打印出来
|