我有一些查找网络脚本文件的代码,例如:ifcfg-eth0 等。该代码当前使用 Augeas 中可用的匹配函数来获取目录中的所有文件,例如:
augeas.match("/files/etc/sysconfig/network-scripts/*")
但是,此代码与 ifcfg-eth0.bak 之类的文件相匹配,这对于我的需求来说不是有效的文件。我只想匹配从 eth0 到 eth7 的网络脚本(并且没有备份文件等)。什么是仅匹配正确文件的好方法?
我有一些查找网络脚本文件的代码,例如:ifcfg-eth0 等。该代码当前使用 Augeas 中可用的匹配函数来获取目录中的所有文件,例如:
augeas.match("/files/etc/sysconfig/network-scripts/*")
但是,此代码与 ifcfg-eth0.bak 之类的文件相匹配,这对于我的需求来说不是有效的文件。我只想匹配从 eth0 到 eth7 的网络脚本(并且没有备份文件等)。什么是仅匹配正确文件的好方法?
如果您绝对确定您不想要任何具有和扩展名的文件,您可以试试这个。
augeas.match('etc/sysconfig/network-scripts/*[regexp("[\w-]")]')
编辑添加引号,如下所述。
我能够使用以下代码满足我的要求:
files = []
for i in range(8):
try:
filename = augeas.match('/files/etc/sysconfig/network-scripts/ifcfg-eth' + str(i))[0]
files.append(filename)
except:
continue
print files