|
客户要求整理出所有服务器上所有用户,在ansible服务器上执行
ansible all -m shell -a "cat /etc/passwd|awk '{print $1}'"
输出结果如下,省略了一些。一个ip下面跟着用户:
10.200.187.51
root
bin
daemon
adm
10.200.151.94
root
bin
daemon
adm
需要输出如下,即分为两列,ip列合并单元格:
以下需先安装pandas
pip install pandas
import pandas as pd
import re
text = """
10.200.187.51
root
bin
daemon
adm
10.200.151.94
root
bin
daemon
adm
"""
data = text.strip().split("\n")
rs = []
ip = ""
for d in data:
if re.match('\d+\.\d+\.\d+\.\d', d):
ip = d
else:
rs.append((ip, d))
df = pd.DataFrame(rs, columns=["ip", "user"])
df = df.groupby(df["ip"]).apply(lambda x: x["user"])
df.to_excel("test1.xlsx") |
|
|