Board logo

标题: [文本处理] 如何用findstr截取多个字符串而不是多个字符串所在的行 [打印本页]

作者: heike07    时间: 2015-7-10 17:20     标题: 如何用findstr截取多个字符串而不是多个字符串所在的行

例如:a.txt
192.168.1.1 open sfgfgdfsg
a.bat
findstr "[*.*.*.*]" 1.txt >3.txt
但是a。bat执行后,3.txt上显示的是
192.168.1.1 open sfgfgdfsg一行
我想单独截取 192.168.1.1 这样的
作者: bailong360    时间: 2015-7-10 18:51

  1. for /f %%i in ('findstr "[*\.*\.*\.*]" 1.txt') do >3.txt echo %%i
  2. type 3.txt
复制代码

作者: heike07    时间: 2015-7-10 21:07

蒽蒽,解决了,可是如果是多行怎么办啊
比如这样:
  1. 192.168.4.1 eterfrdd
  2. 192.164.4.4 dfcsddsf'
复制代码

作者: CrLf    时间: 2015-7-10 22:19

这种需求用 grep 比较合适,话说楼主的正则写得好像是有问题的
  1. grep -o -P "\d+\.\d+\.\d+\.\d+" 1.txt >3.txt
复制代码

作者: heike07    时间: 2015-7-10 22:31

可是失败啦~
作者: pcl_test    时间: 2015-7-11 08:41

回复 5# heike07

2楼代码改一处>>3.txt
4楼代码下载grep配合使用http://batch-cn.qiniudn.com/tool/2.5.1/grep.exe




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