写一个python脚本,输入shell命令是linkd all |grep "(",返回的结果是redis-server (17014) [ OK ],提取里面的字符串放在json里面
时间: 2024-02-15 18:37:12 浏览: 70
josePhu.txt
以下是一个可能的实现,使用了`subprocess`模块来执行命令,并使用`re`模块来匹配字符串:
```python
import subprocess
import re
import json
command = "linkd all |grep '('"
output = subprocess.check_output(command, shell=True)
match = re.search(r'(\w+\-\w+)\s+\((\d+)\)', output.decode())
if match:
data = {
"name": match.group(1),
"pid": int(match.group(2)),
"status": "OK"
}
json_data = json.dumps(data)
print(json_data)
else:
print("No match found")
```
这个脚本首先执行`linkd all |grep '('`命令,并将输出存储在`output`变量中。然后使用正则表达式来匹配输出中包含的进程名和进程ID,并将其存储在`data`字典中。最后,使用`json.dumps()`函数将`data`转换为JSON格式,并打印出来。如果没有找到匹配,则输出"No match found"。
阅读全文