Board logo

标题: [文本处理] 批处理怎样提取IP? [打印本页]

作者: syy718888    时间: 2013-9-19 00:20     标题: 批处理怎样提取IP?

源数据a.txt
  1. | 92.61.60.39:8888    | FPPX-2.10.1(10.7.0)                                          | ntk    |
  2. | 93.61.233.78:8888   | FPPX-2.9.0(1.6.2.13)                                         | ntk    |
  3. | 94.61.233.15:8888   | FPPX-2.9.0(1.6.2.13)                                         | ntk    |
  4. | 95.61.138.148:5060  | AVM Fon(Nov 18 2009)                                     | ntk    |
  5. | 96.61.138.119:5060  | Annex A 58.04.78                                         | ntk    |
  6. | 97.61.51.150:5060   | SPA2-5.2.10                                              | ntk    |
  7. | 98.61.114.134:5060  | Ast1.8.4.4~dfsg-2                                        | ntk    |
复制代码
目标数据 b.txt
  1. 92.61.60.39
  2. 93.61.233.78
  3. 94.61.233.15
  4. 95.61.138.148
  5. 96.61.138.119
  6. 97.61.51.150
  7. 98.61.114.134
复制代码
不知道 findstr加正则 能否实现 或者是有其他什么好办法 而且ip后面的数据中有(1.6.2.13)这样的内容 也许应该重点排除一下 请各位大侠不吝赐教啊
作者: Lumiere    时间: 2013-9-19 03:25

  1. for /f "tokens=2 delims=: " %%a in ('findstr ":" a.txt') do echo %%a>>b.txt
复制代码
回复 1# syy718888
作者: syy718888    时间: 2013-9-19 07:08

二楼的朋友的办法感觉很适合这个例子 就是我的文档都比较大 处理速度会有些跟不上 不知还有没有更好的办法
作者: weichenxiehou    时间: 2013-9-19 09:33

回复 3# syy718888
要想快一点就用第三方工具sed咯,通过IP地址前面的空格和后面的冒号来判断是否为想要的:
  1. sed -nr "s/.* (([0-9]{1,3}\.){3}[0-9]{1,3}):.*/\1/p" a.txt>b.txt
复制代码

作者: syy718888    时间: 2013-9-19 13:28

回复 4# weichenxiehou


    谢谢你的建议 我是个纯新手 这个工具还没有接触过 一定安装了体验一下




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2