Board logo

标题: [文本处理] 批处理如何使用find或findstr查找指定字符串? [打印本页]

作者: hahahawke    时间: 2010-10-10 11:30     标题: 批处理如何使用find或findstr查找指定字符串?

如何使用find/findstr查找字符[+space]+数字类型的字符串,求教!
有如下文本1.txt
test 1234
test[xx]
test
xx11test
test123sf
test ddd
testddd

需要提取,如下另存为2.txt
test 1234
test123sf

求高手指教!
作者: hahahawke    时间: 2010-10-10 11:51     标题: 回复 1楼 的帖子

补充: 不要求2.txt的的具体文本内容。只要提取出来指定的两行即可。
不一定是123,是数字或者数字的组合,就是这个地方不太明白,如何表示任意数字呢?

不好意思,各位大侠,小生这两天家里电脑出了问题,公司上不了网。
是我的问题,没说清楚,我是想找test[+space]+数字的组合

没说清楚,我的问题。先回一个,我马上看看各位的代码。谢谢!

[ 本帖最后由 hahahawke 于 2010-10-12 22:16 编辑 ]
作者: Batcher    时间: 2010-10-10 12:10

为何xx11test不符合要求?
作者: 491321720xxw    时间: 2010-10-10 17:58

  1. @echo off
  2. findstr /n .* 1.txt>b.txt
  3. findstr /b /c:"1:" /c:"5:" b.txt>c.txt
  4. for /f "tokens=2 delims=:" %%i in (c.txt) do (
  5.       echo %%i >>2.txt
  6. )
  7. del /q b.txt
  8. del /a c.txt
  9. pause>nul
复制代码

作者: 491321720xxw    时间: 2010-10-10 17:59

有点复杂!!!!你看看吧!!!!!再想想更好的办法!!!!!!
作者: leap    时间: 2010-10-10 20:23

  1. for /f "delims=" %%i in ('type 1.txt^|find "123"') do echo %%i>>2.txt
复制代码

作者: powerbat    时间: 2010-10-10 23:52

在楼主回复3楼的问题之前,所有的答案都是无意义的(上午我本来给出答案了,但看到楼主在2楼的补充后又删除了)
作者: hahahawke    时间: 2010-10-12 21:49

不好意思,各位大侠,小生这两天家里电脑出了问题,公司上不了网。
是我的问题,没说清楚,我是想找test[+space]+数字的组合

没说清楚,我的问题。先回一个,我马上看看各位的代码。谢谢!
作者: cjiabing    时间: 2010-10-12 21:50

  1. findstr/?
  2. 除非参数有 /C 前缀,请使用空格隔开搜索字符串。
  3. 例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或
  4. "there" 。 'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找
  5. "hello there"。
复制代码

作者: powerbat    时间: 2010-10-12 23:34

  1. findstr.exe /ir /c:"test[ ]*[0-9][0-9]*" 1.txt >2.txt
复制代码

作者: hahahawke    时间: 2010-10-13 01:03

好的,谢谢啦。结贴,多谢各位大侠。
作者: Batcher    时间: 2010-10-13 13:02     标题: 回复 11楼 的帖子

说说到底哪个代码帮你解决了问题吧,以便后来人搜索。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2