我正在研究从bash到python的脚本重建。 我已经列出了许多服务器和计算机的SQL输出数据,这些数据在glpidb上已经有一个月没有更新了。你知道吗
在此列表中,我需要执行一些任务以获得适当的列表:
首先,我的数据类型是:
[OCS ID]
servername01A-2015-05-15-13-42-25
servernameB02-2018-03-25-05-32-35
pt-clark-2018-09-25-14-10-05
PT-Peter-2019-01-01-12-12-05
G4535-2017-07-14-11-29-25
G4535-2017-07-14-11-29-25
g4535-2017-07-14-11-29-25
pc-rescue-2013-11-11-11-12-05
现在,我需要:
我试过的
#exclusion file
exclusion = open("./exclusion.list", "r")
#data in
data_in = open("./list_in", "r")
#read files
exclusion_lines = exclusion.readlines()
data_lines = data_in.readlines()
#start
for a in data:
Z = re.split("(.*)-([0-9]{4}.*)", a[1])
matchPCPT = re.search("^([Pp][TtCc]-*)", Z[1])
matchG = re.search("^([Gg][0-9]{4})", Z[1])
if not matchPCPT and not matchG:
print Z[1]
有了这个,我得到了这个输出:
servername01A
servernameB02
servernameB02
servernameB02
servername01A
以及一些我必须删除的服务器(包括排除列表)。你知道吗
拜托,我需要帮助,我是python的新手。你知道吗
祝你今天愉快
编辑:
这里有一个完整的输入列表
mailsrv1a-2015-05-15-13-42-25
mailsrv1b-2015-05-15-13-42-25
mailsrv1c-2015-05-15-13-42-25
mailsrv1a-2015-05-15-13-42-25
datasrvA2-2016-05-15-23-25-25
datasrvB2-2016-05-15-23-25-25
datasrvB2-2016-05-15-23-25-25
g4535-2017-07-14-11-29-25
pc-rescue-2013-11-11-11-12-05
PT-Peter-2019-01-01-12-12-05
pt-clark-2018-09-25-14-10-05
G4535-2017-07-14-11-29-25
benchsrv01rt-2017-07-14-11-29-25
benchsrv02rt-2017-07-14-11-29-25
esxsrv01-2017-07-14-11-29-25
esxsrv02-2017-07-14-11-29-25
solaris10g-2017-07-14-11-29-25
solaris10g-2017-07-14-11-29-25
solaris30g-2017-07-14-11-29-25
test1t-2017-07-14-11-29-25
test2t-2017-07-14-11-29-25
test3t-2017-07-14-11-29-25
test4t-2017-07-14-11-29-25
test5t-2017-07-14-11-29-25
以下是要排除的服务器列表:
benchsrv01rt
benchsrv02rt
solaris30g
solaris10g
test*t
我可以在排除列表中使用regex吗?你知道吗
可以使用标准方法处理字符串。你知道吗
第二部分总是有20个字符,所以您可以使用slice
[:-20]
来获取第一部分。你知道吗使用
text.lower().startswith( ("g", "pt-", "pc-") )
可以跳过一些名称。你知道吗可以将正确的名称添加到列表中(即
result
),并且可以检查它是否在此列表中以跳过重复的值。你知道吗唯一的问题是
G4535
中的数字(如果您真的需要用数字识别名称),它可能需要regex
编辑:其他问题可能是
test*t
,这也可能需要regex。你知道吗编辑:您还可以使用list
excluded
和excluded = '|'.join(excluded)
创建regex,您可以在re.match()
中使用下面是一个示例(它包含一些Python列表理解)
最终输出为:
相关问题 更多 >
编程相关推荐