Board logo

标题: 模糊查找b.txt中的IP地址保存到c.txt需要大家完善 [打印本页]

作者: ybxcyx     时间: 2007-12-31 22:52    标题: 模糊查找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写的还不行.请高手帮忙,谢谢!

作者: slore     时间: 2007-12-31 23:57
你先明确你的b.txt里的内容……是不是

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

作者: everest79     时间: 2008-1-1 00:03

echo 415646192.168.0.115846 >x.txt
@echo off&setlocal enabledelayedexpansion 2>nul 3>nul
for /f "tokens=1-4 delims=." %%a in ('findstr "..." 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

作者: junchen2     时间: 2008-1-1 00:17
我这个可以吗?我没有测试文件

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

作者: lxmxn     时间: 2008-1-2 14:18
gawk --posix "{while(match($0,\"{1,3}\\.{1,3}\\.{1,3}\\.{1,3}\")){print substr($0,RSTART,RLENGTH);$0=substr($0,RSTART+RLENGTH)}}" Urfile.ext

作者: ybxcyx     时间: 2008-4-29 21:09
太感谢各位大侠啦,我虽然不懂,但还是为您们的诚意感动