客戶要求整理出所有服務器上所有用戶,在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列合併單元格:
以下需先安裝pandaspip 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")