Board logo

标题: 如何提取一文本中,有匹配字符的行! [打印本页]

作者: kdfk123     时间: 2007-10-11 21:47    标题: 如何提取一文本中,有匹配字符的行!
高人救命啊!我有一文本,内容是一行一行的!我想用批处理提取文本中有相应字符的行,另存起来,并在原文本中删除这些行!不知道能否实现!
我的文本中有些行带有空格,没有其他的特殊字符!

求高人能帮忙,小弟,我万谢!

作者: guixi     时间: 2007-10-11 23:10
echo off
for /f "delims=" %%a in (关键字.txt) do (
type test.txt |findstr /v "%%a" && echo %%a>>new.txt
type test.txt |findstr "%%a" && echo %%a>>new.txt
)
pause
未经测试

作者: kdfk123     时间: 2007-10-12 21:49
测试先!谢谢高人啊!

作者: kdfk123     时间: 2007-10-14 00:12
大侠不行啊!提取不出来!
我的文本内容的格式像这样子的!

111 434234 325343 432324
23543 32354 3242354 324453
43243 342323 32423 342 34
324234 324234 32423 3242

而且我最后,希望的是把提取出来的内容,再从原文本中删除的!你的代码里好象没有这样的命令吧!

作者: jmz573515     时间: 2007-10-14 20:28

m=inputbox("请输入关键字:","系统提示")
if m="" or m=false then wscript.quit
set fso=createobject("scripting.filesystemobject")
set file=fso.opentextfile("test.txt")
sm=file.readall
file.close
s=split(sm,vbcrlf)
yesm=filter(s,m)
nom=filter(s,m,false)
wscript.echo "包含【" & m & "】的行:" & vbcrlf & vbcrlf & join(yesm,vbcrlf)
wscript.echo "不包含【" & m & "】的行:" & vbcrlf & vbcrlf &join(nom,vbcrlf)

作者: kdfk123     时间: 2007-10-14 20:34
谢谢这位大侠!我先测试先哦!

作者: 不得不爱     时间: 2007-10-14 21:02
echo off
for /f "delims=" %%a in (关键字.txt) do (
type test.txt |findstr "%%a">>包括.txt
type test.txt |findstr /v "%%a">>不包括.txt
)

作者: kdfk123     时间: 2007-10-20 20:40
Originally posted by 不得不爱 at 2007-10-14 09:02 PM:
echo off
for /f "delims=" %%a in (关键字.txt) do (
type test.txt |findstr "%%a">>包括.txt
type test.txt |findstr /v "%%a">>不包括.txt
)

果然是高人啊!一下子解决了!真是太谢谢斑竹了!万万谢啊!

作者: slore     时间: 2007-10-20 21:04
findstr可以直接操作文本,不用一行行……

findstr "slore" 关键字.txt>包含.txt
findstr /v "slore" 关键字.txt>不包含.txt