找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27261|回复: 5

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

[复制链接]
发表于 2015-7-10 17:20:47 | 显示全部楼层 |阅读模式
例如: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 这样的
发表于 2015-7-10 18:51:34 | 显示全部楼层
  1. for /f %%i in ('findstr "[*\.*\.*\.*]" 1.txt') do >3.txt echo %%i
  2. type 3.txt
复制代码
 楼主| 发表于 2015-7-10 21:07:33 | 显示全部楼层
蒽蒽,解决了,可是如果是多行怎么办啊
比如这样:

  1. 192.168.4.1 eterfrdd
  2. 192.164.4.4 dfcsddsf'
复制代码
发表于 2015-7-10 22:19:53 | 显示全部楼层
这种需求用 grep 比较合适,话说楼主的正则写得好像是有问题的
  1. grep -o -P "\d+\.\d+\.\d+\.\d+" 1.txt >3.txt
复制代码
 楼主| 发表于 2015-7-10 22:31:24 | 显示全部楼层
可是失败啦~
发表于 2015-7-11 08:41:24 | 显示全部楼层
回复 5# heike07

2楼代码改一处>>3.txt
4楼代码下载grep配合使用http://batch-cn.qiniudn.com/tool/2.5.1/grep.exe
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 00:05 , Processed in 0.017686 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表