[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 如何用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 这样的

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

TOP

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

TOP

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

TOP

可是失败啦~

TOP

回复 5# heike07

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

TOP

返回列表