LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1020|回复: 4

新手求助:如何把某文件中特定符号中间的一些信息提取出来?

[复制链接]
发表于 2007-8-17 11:39:05 | 显示全部楼层 |阅读模式
例如:
<TD ROWSPAN='4'><font color='#000000'>1</TD><TD><font color='#000000'>1</TD><TD><font color='#000000'>602.0</TD><TD><font color='#000000'>0</TD><TD><font color='#000000'>0.021 Mbps (0 %)</TD><TD><font color='#000000'>38.015 Mbps</TD>
我只想要每个<font color='#000000'>后边的那个数值,包括单位,并输出到一个文件中,格式为:
1
1
602.0
0
0.021 Mbps
38.015 Mbps
发表于 2007-8-17 12:51:37 | 显示全部楼层
  1. $ cat txt
  2. <TD ROWSPAN='4'><font color='#000000'>1</TD><TD><font color='#000000'>1</TD><TD><font color='#000000'>602.0</TD><TD><font color='#000000'>0</TD><TD><font color='#000000'>0.021 Mbps (0 %)</TD><TD><font color='#000000'>38.015 Mbps</TD>
  3. $ perl -lne 'print $1 while />(\d+.*?)(:?\(.*?\))?</g' txt
  4. 1
  5. 1
  6. 602.0
  7. 0
  8. 0.021 Mbps
  9. 38.015 Mbps
  10.                                                    
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-17 13:15:09 | 显示全部楼层
牛人啊,能帮忙给解释一下吗?
还有,如果不要单位,只要数字该怎么做?
呵呵,我对此一窍不通,谢谢了!
回复 支持 反对

使用道具 举报

发表于 2007-8-17 14:50:40 | 显示全部楼层
简单正则匹配呀
  1. $ perl -lne 'print $1 while />([\d.]+)(:?.*?)?</g' txt
  2. 1
  3. 1
  4. 602.0
  5. 0
  6. 0.021
  7. 38.015
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-8-17 21:58:12 | 显示全部楼层
学好正则表达式很重要
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表