![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-25 23:54 |
共 47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]如何从txt文件中提取我要的IP?[谢谢各位] |
| 可打印版本 1,585 / 14 |
| 第1楼 3391617 | 发表于 2007-03-09 02:41 |
| 初级用户 发帖 56 积分 116 | |
|
[求助]如何从txt文件中提取我要的IP?[谢谢各位] </center><il><li><a title="AU" onMouseOver="s('AU')" onMouseOut="d()" class="D">144.140.22.190:80</a></li><li><a title="KR" onMouseOver="s('KR')" onMouseOut="d()" class="D">125.248.244.131:8080</a></li><li><a title="IN" onMouseOver="s('IN')" onMouseOut="d()" class="D">202.53.13.10:8080</a></li><li><a title="PH" onMouseOver="s('PH')" onMouseOut="d()" class="B">125.212.37.150:8080</a></li><li><a title="CN" onMouseOver="s('CN')" onMouseOut="d()" class="B">220.181.31.44:3128</a></li><li><a title="CO" onMouseOver="s('CO')" onMouseOut="d()" class="D">200-91-243-90-host.ifx.net.co:3128</a></li><li><a title="US" onMouseOver="s('US')" onMouseOut="d()" class="D">216.133.248.229:80</a></li><li><a title="US" onMouseOver="s('US')" onMouseOut="d()" class="D">216.133.248.228:80</a></li><li><a title="US" onMouseOver="s('US')" onMouseOut="d()" class="D">216.133.248.226:80</a></li><li><a title="JP" onMouseOver="s('JP')" onMouseOut="d()" class="D">neptun.ium.ne.jp:8094</a></li><li><a title="TR" onMouseOver="s('TR')" onMouseOut="d()" class="D">195.175.37.71:8080</a></li><li><a title="NL" onMouseOver="s('NL')" onMouseOut="d()" class="D">213.227.149.165:3128</a></li><li><a title="US" onMouseOver="s('US')" onMouseOut="d()" class="D">216.133.248.227:80</a></li></il><center>
以上内容(都是同1行里的,不是现在看到的多行)为文档1.txt,请教我如何可以从1.txt中提取出里面的 144.140.22.190:80 xxx.xxx.xxx.xxx:xx xxx.xxx.xxx.xxx:xx ... ... ... xxx.xxx.xxx.xxx:xx 到新建的另一个2.txt中呢? 最好能把class后的类型属性也提取出来,例如这样 144.140.22.190:80----D xxx.xxx.xxx.xxx:xx xxx.xxx.xxx.xxx:xx 220.181.31.44:3128----B ... ... xxx.xxx.xxx.xxx:xx 先谢谢了! [ Last edited by 3391617 on 2007-3-9 at 10:18 AM ] |
|
| 第2楼 ccwan | 发表于 2007-03-09 02:50 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
这种内容的处理,用sed比较好,还是请熟悉sed命令的同学来做吧。
|
|
| 第3楼 vkill | 发表于 2007-03-09 03:22 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
sed -r "s/>[^<>]*<\/a>/&\n/g" 1.txt|sed -r "s/.*class=\x22([A-Z]{1})\x22>([^<>]*)<\/a>$/\2--\1/;/--([A-Z]{1})$/!d"|more>2.txt
只是量体裁衣,没有考虑太多的匹配 |
|
| 第4楼 slore | 发表于 2007-03-09 03:23 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
不知道帖子什么地方去了^ 『楼 主』: 如何从txt文件中提取我想要的内容?
</center><il><li><a title="AU" onMouseOver="s('AU')" onMouseOut="d()" class="D">144.140.22.190:80</a></li><li><a title="KR" onMouseOver="s('KR')" onMouseOut="d()" class="D">125.248.244.131:8080</a></li><li><a title="IN" onMouseOver="s('IN')" onMouseOut="d()" class="D">202.53.13.10:8080</a></li><li><a title="PH" onMouseOver="s('PH')" onMouseOut="d()" class="B">125.212.37.150:8080</a></li><li><a title="CN" onMouseOver="s('CN')" onMouseOut="d()" class="B">220.181.31.44:3128</a></li><li><a title="CO" onMouseOver="s('CO')" onMouseOut="d()" class="D">200-91-243-90-host.ifx.net.co:3128</a></li><li><a title="US" onMouseOver="s('US')" onMouseOut="d()" class="D">216.133.248.229:80</a></li><li><a title="US" onMouseOver="s('US')" onMouseOut="d()" class="D">216.133.248.228:80</a></li><li><a title="US" onMouseOver="s('US')" onMouseOut="d()" class="D">216.133.248.226:80</a></li><li><a title="JP" onMouseOver="s('JP')" onMouseOut="d()" class="D">neptun.ium.ne.jp:8094</a></li><li><a title="TR" onMouseOver="s('TR')" onMouseOut="d()" class="D">195.175.37.71:8080</a></li><li><a title="NL" onMouseOver="s('NL')" onMouseOut="d()" class="D">213.227.149.165:3128</a></li><li><a title="US" onMouseOver="s('US')" onMouseOut="d()" class="D">216.133.248.227:80</a></li></il><center> 以上内容(都是同1行里的,不是现在看到的多行)为文档1.txt,请教我如何可以从1.txt中提取出里面的 144.140.22.190:80 xxx.xxx.xxx.xxx:xx xxx.xxx.xxx.xxx:xx ... ... ... xxx.xxx.xxx.xxx:xx 到新建的另一个2.txt中呢? 最好能把class后的类型属性也提取出来,例如这样 144.140.22.190:80----D xxx.xxx.xxx.xxx:xx xxx.xxx.xxx.xxx:xx 220.181.31.44:3128----B ... ... xxx.xxx.xxx.xxx:xx 先谢谢了! 刚看的啊,3月8日的!不知道跑什么地方去了^ 结果:
|
|
| 第5楼 ccwan | 发表于 2007-03-09 03:41 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
在回收站里。不知怎么回事。
|
|
| 第6楼 namejm | 发表于 2007-03-09 03:51 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
因为楼主的原标题十分模糊,从标题无法迅速知晓帖子大概内容,所以被我移到回收站去了。经过楼主的修改,标题已经符合规范,因此移回,并合并了相关帖子。
|
|
| 第7楼 3391617 | 发表于 2007-03-09 06:11 |
| 初级用户 发帖 56 积分 116 | |
|
4楼是VBS?3楼sed似乎还不成~~~~bat就不成?
下午忙业务去了,没得闲上论坛来! 在这谢谢你们几位的帮助了! |
|
| 第8楼 namejm | 发表于 2007-03-09 06:59 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
以下代码可以提取IP格式的记录,但是,不能提取到类型属性:
|
|
| 第9楼 3391617 | 发表于 2007-03-09 08:09 |
| 初级用户 发帖 56 积分 116 | |
|
对XXX.XXX.XXX.XXX:XX格式的的确好用
收下了 谢谢namejm! |
|
| 第10楼 youxi01 | 发表于 2007-03-09 12:00 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
借用namejm的代码,可以提取IP格式的记录和类型属性:
结果: |
|
| 第11楼 clonecd | 发表于 2007-03-09 15:14 |
| 初级用户 发帖 46 积分 94 | |
|
这个问题前就有人问过啦,不过那个是在多行里的。
[ Last edited by clonecd on 2007-3-9 at 04:32 PM ] |
|
| 第12楼 clonecd | 发表于 2007-03-09 16:30 |
| 初级用户 发帖 46 积分 94 | |
|
@sed "s/class/\n&/g;s/<\/a>/&\n/g" 1.txt|sed "/:/!d;s/.*\x22\(.*\)\x22>\(\+\)<.*/\2----\1/">2.txt
以上是不包含200-91-243-90-host.ifx.net.co:3128----D 如果需要这一行,请用以下代码 sed "s/class/\n&/g;s/<\/a>/&\n/g" 1.txt|sed "/:/!d;s/.*\x22\(.*\)\x22>\(\+\)<.*/\2----\1/">2.txt [ Last edited by clonecd on 2007-3-9 at 04:40 PM ] |
|
| 第13楼 3391617 | 发表于 2007-03-09 23:18 |
| 初级用户 发帖 56 积分 116 | |
|
上面的好象不好用哦~
有没有能从任意文档中提取出全部类似以下格式: XXX.XXX.XXX.XXX:XX XXX.XXX.XXX.XX:XXXX XX.XXX.XX.XXX:XXX XX.XXX.XXX.XX:XXXX or格式: XXX.XX.XXX.XXX--XX XXX.XXX.XXX.XXX--XXXX XX.XXX.XX.XXX--XXX XX.XXX.XXX.XX--XX 的所有IP地址的通用方法呢? 在同一行/不在同一行? [ Last edited by 3391617 on 2007-3-9 at 10:23 AM ] |
|
| 第14楼 xycoordinate | 发表于 2007-03-09 23:43 |
| 中级用户 发帖 228 积分 493 来自 安徽 | |
哪位能帮我解释一下? 我在if /? 看到:
如果没有已定义环境变量,那就不执行后面的command??? [ Last edited by xycoordinate on 2007-3-9 at 10:51 AM ] |
|
| 第15楼 clonecd | 发表于 2007-03-09 23:56 |
| 初级用户 发帖 46 积分 94 | |
Originally posted by 3391617 at 2007-3-9 23:18: 12楼的代码是针对你1楼给出的条件来写的,要考虑你13楼附加的条件用sed也是完全可以做到的,你自己学习sed再研究吧。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |