我很难弄清楚如何从主机名中删除最后一段时间......
当前输出:
期望的输出:
尝试1:
print string[:-1] #it works on some lines but not all
尝试2:
str = string.split('.')
subd = '.'.join(str[0:-1])
print subd # does not work at all
代码:
global DOMAINS
if len(DOMAINS) >= 1:
for domain in DOMAINS:
cmd = "dig @adonis.dc1.domain.com axfr %s |grep NS |awk '{print $1}'|sort -u |grep -v '^%s.$'" % (domain,domain)
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
string = p.stdout.read()
string = string.strip().replace(' ','')
if string:
print string
答案 0 :(得分:15)
你这样做:
hostname.rstrip('.')
其中hostname是包含域名的字符串。
>>> 'domain.com'.rstrip('.')
'domain.com'
>>> 'domain.com.'.rstrip('.')
'domain.com'
答案 1 :(得分:2)
正则表达式是:
(.+)\.
没有.
的域现在位于捕获组1中。
答案 2 :(得分:-3)
我放弃了,而只是使用了sed ....
cmd = "dig @adonis.dc1.domain.com axfr %s |grep NS |awk '{print $1}' |sort -u |grep -v '^%s.$'|sed -e 's/.$//'"