|
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 |
|
|