中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 模糊查找b.txt中的IP地址保存到c.txt需要大家完善
作者:
标题: 模糊查找b.txt中的IP地址保存到c.txt需要大家完善 上一主题 | 下一主题
ybxcyx
初级用户





积分 26
发帖 11
注册 2007-12-18
状态 离线
『楼 主』:  模糊查找b.txt中的IP地址保存到c.txt需要大家完善

假如文件b.txt内容如下:
yuyuftttftfdhdhdhdhdhdhdhdhdh
fgffgfggfsssseeessfd196.168.002.001hhhhh

查找ip.bat 文件如下:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=2,3 delims==/." %%i in ('findstr .  b.txt') do (
set ybx=%%i.%%j
call 查找ip0.bat %ybx%
)
endlocal

查找ip0.bat 文件如下:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /L %%i in (0,1,9) do find b.txt "%ybx%.00%%i" && ( set ybx=%ybx%.00%%i& goto ybx)
for /L %%i in (10,1,99) do find b.txt "%ybx%.0%%i" && ( set ybx=%ybx%.0%%i& goto ybx)
for /L %%i in (100,1,999) do find b.txt "%ybx%.%%i" && ( set ybx=%ybx%.%%i& goto ybx)
:ybx
call 查找ip1.bat %ybx%
cls
endlocal

查找ip1.bat 文件如下:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /L %%i in (0,1,9) do find b.txt "00%%i.%ybx%" && (set ybx=00%%i.%ybx%& goto ybx)
for /L %%i in (10,1,99) do find b.txt "0%%i.%ybx%" && (set ybx=0%%i.%ybx%& goto ybx)
for /L %%i in (100,1,199) do find b.txt "%%i.%ybx%" && (set ybx=%%i.%ybx%& goto ybx)
:ybx
cls
echo %ybx%>c.txt
pause
endlocal

能够查到196.168.002.001保存到c.txt中,可是效率不高,并且196.168.2.1写的还不行.请高手帮忙,谢谢!

2007-12-31 22:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

你先明确你的b.txt里的内容……是不是

无序字母+IP+无序字母……没有其他的杂的东西。。。如果这样话你把里面的数字和.提取出来就是IP了……

2007-12-31 23:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 3 楼』:  


echo 415646192.168.0.115846 >x.txt
@echo off&setlocal enabledelayedexpansion 2>nul 3>nul
for /f "tokens=1-4 delims=." %%a in ('findstr "[0-9].[0-9].[0-9].[0-9]" x.txt') do (
set/aip1=%%a,ip2=%%b,ip3=%%c,ip4=%%d
call :chkip 1 !ip1:~-3!
call :chkip 2 !ip2!
call :chkip 3 !ip3!
call :chkip 4 !ip4:~0,3!
echo !ip1!.!ip2!.!ip3!.!ip4!
)
pause


:chkip
set ip=
set nip=%~2
set /a ip=1%nip:~-1%,ip=1%nip:~-2%,ip=1%nip:~-3%
set /a ip=%ip:~1%
set /a 1/(255/ip)&&set nip=%ip:~-3%||set nip=%ip:~-2%
set /a ip%1=nip
goto :eof


2008-1-1 00:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
junchen2
高级用户





积分 537
发帖 219
注册 2007-8-4
来自 杭州--半山
状态 离线
『第 4 楼』:  

我这个可以吗?我没有测试文件

awk "{d=gensub(/[^0-9\.]/,\"\n\",\"g\",$0);print d}"  test.txt  |   awk -F"\056" "{if(/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/){if(length($1)<4&&length($2)<4&&length($3)<4&&length($4)<4&&$1<256&&$2<256&&$3<256&&$4<256)print $0}}"

2008-1-1 00:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 5 楼』:  


gawk --posix "{while(match($0,\"[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\")){print substr($0,RSTART,RLENGTH);$0=substr($0,RSTART+RLENGTH)}}" Urfile.ext


2008-1-2 14:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ybxcyx
初级用户





积分 26
发帖 11
注册 2007-12-18
状态 离线
『第 6 楼』:  

太感谢各位大侠啦,我虽然不懂,但还是为您们的诚意感动

2008-4-29 21:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: