免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1759 | 回复: 5
打印 上一主题 下一主题

怎么取出这样的文本中-i后面的字段? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-06 19:16 |只看该作者 |倒序浏览
文本示例如下:
#!/bin/sh
exec 2>&1
exec setuidgid apache /usr/libexec/rrd/acquire-aggregate-generic -i affiliate  -a 239.11.50.5:8102
sleep 2
#!/bin/sh
exec 2>&1
exec setuidgid apache /usr/libexec/rrd/acquire-apache
sleep 2
#!/bin/sh
exec 2>&1
exec setuidgid apache /usr/libexec/rrd/acquire-cheetah -i cheetah -a 239.11.50.5:8042
sleep 2
#!/bin/sh
exec 2>&1
exec setuidgid apache /usr/libexec/rrd/acquire-aggregate-generic -a 239.11.60.5:5002 -e 'YSM::Monitor:H::Emitter::Stat' -i datahighway-emitter-by-host
sleep 2
#!/bin/sh
exec 2>&1
exec setuidgid apache /usr/libexec/rrd/acquire-distro-locks -a 239.11.50.5:8057 -i distro-locks
sleep 2


怎么取出这样的文本中-i后面的字段?

比如这里我需要:
affiliate  
cheetah
datahighway-emitter-by-host
distro-locks

论坛徽章:
0
2 [报告]
发表于 2012-01-06 19:25 |只看该作者
awk -F'-i ' '{print $2}' <txt |cut -d' ' -f1|sort|uniq

论坛徽章:
0
3 [报告]
发表于 2012-01-06 19:32 |只看该作者
改进一下:

awk -F'-i ' '{print $2}' <text.txt |cut -d' ' -f1|sed '/^$/d'

论坛徽章:
0
4 [报告]
发表于 2012-01-07 09:29 |只看该作者
  1. fp = open (file, "r")
  2. for line in fp.readlines():
  3.     if re.search ('-i', line):
  4.         line = re.sub (r'^.*-i', '', line)
  5.         line = re.sub (r'-.*$', '', line)
  6.         print line.strip()
复制代码

论坛徽章:
0
5 [报告]
发表于 2012-01-08 21:31 |只看该作者
本帖最后由 fuliangcheng 于 2012-01-08 21:33 编辑

#file for find str which specified by user
import re
f = file('file_test1.txt')
result = []
for line in f:
    s = []
    if re.search('-i', line):
        s = line.split()
        result.append(s[s.index('-i')+1])
        #print line,
        #print s[s.index('-i')+1],
        #print '\n'
print result   
        
        
结果:['affiliate', 'cheetah', 'datahighway-emitter-by-host', 'distro-locks']

论坛徽章:
0
6 [报告]
发表于 2012-01-08 22:25 |只看该作者
本帖最后由 inpool 于 2012-01-08 22:27 编辑
  1. result = []
  2. for line in open('text.txt'):
  3.     tmplist = line.split()
  4.     if '-i' in tmplist:
  5.         result.append(tmplist[tmplist.index('-i') + 1])
  6. print result
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP