标题: [文本处理] [已解决]批处理tokens怎样多次提取? [打印本页]
作者: super1129 时间: 2011-9-17 09:22 标题: [已解决]批处理tokens怎样多次提取?
有个txt文本文件,里面内容为
62.244.13.82:3128@HTTP#[C]乌克兰 Simferopol State University
62.244.13.110:3128@HTTP#[C]乌克兰 Simferopol State University
62.244.13.110:58@HTTP#[C]乌克兰 Simferopol State University
………………
我想通过批处理或者VBS之类的达到如下效果,希望变成这样:
62.244.13.0 62.244.13.255 3128
62.244.13.0 62.244.13.255 3128
62.244.13.0 62.244.13.255 58
…………
最好能够去除重复行,达到这样:
62.244.13.0 62.244.13.255 3128
62.244.13.0 62.244.13.255 58
…………
O(∩_∩)O谢谢
我自己编的,速度好慢,大家有更好的方法吗?
作者: Batcher 时间: 2011-9-17 09:44
看教程:
http://bbs.bathome.net/thread-2189-1-1.html
作者: wc726842270 时间: 2011-9-17 09:56
是否想过用一个FOR来搞定啊。为什么DELIMS每次仅指定一个分隔符
作者: super1129 时间: 2011-9-17 10:00
是否想过用一个FOR来搞定啊。为什么DELIMS每次仅指定一个分隔符
wc726842270 发表于 2011-9-17 09:56
请指教啊,我是新手,只会一个个弄,难怪速度好慢。
作者: super1129 时间: 2011-9-17 10:03
是否想过用一个FOR来搞定啊。为什么DELIMS每次仅指定一个分隔符
wc726842270 发表于 2011-9-17 09:56
谢谢指点,原来DELIMS可以指定多个分隔符,搞定了,非常感谢啊,看来以后要好好学了
作者: super1129 时间: 2011-9-17 21:11
本帖最后由 super1129 于 2011-9-17 21:14 编辑
看教程:
Batcher 发表于 2011-9-17 09:44
请问管理员:如何对提取得到的%%c进行运算呢?
比如62.244.13.82:3128@HTTP#[C]乌克兰 Simferopol State University
我想得到62.244.8.0 62.244.18.255 3128
其中 8=13-5,18=13+5.
就是要对%%c进行加减后赋值,但是试了好久都提示错误,如何才是正确的赋值呢?以下是62.244.13.0 62.244.13.255 3128 的代码。- @echo off
- echo 正在处理,请等待。。。。。。
- for /f "delims=.:@ tokens=1-5" %%a in ('type ip.txt') do echo %%a.%%b.%%c.0 %%a.%%b.%%c.255 %%e>>tmp.txt
- )
- (for /f "delims=" %%i in (tmp.txt) do (
- if not defined "%%i" echo %%i&set ""%%i"=i"
- ))>IPrangge+port.txt
- del /q tmp.txt
- exit
复制代码
作者: awk 时间: 2011-9-18 21:22
- gawk -F "[.:@]+" "{print $1\".\"$2\".\"$3\".\"0,$1\".\"$2\".\"$3\".\"255,$5}" a.txt
复制代码
作者: awk 时间: 2011-9-18 21:25
去重复:- gawk -F "[.:@]+" "{if(!a[$1 $2 $3 $5]++)print $1\".\"$2\".\"$3\".\"0,$1\".\"$2\".\"$3\".\"255,$5}" a.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |